CheckedListBoxコントロールのSelectionModeプロパティは
None か One しか指定できないと思いますが One にした場合でも
"一つしか選択できない" のではなく "一つずつ複数選択できる" と思います。
1つずつチェックを付けていく訳なんで当たり前の動きなのかもしれませんが
これを一つしかチェックできないように制御する方法があれば教えてもらえないでしょうか?
普通のListBoxであれば One にする事で1つの項目だけ選択できるとは
思うんですが(勘違いでなければ)、見た目上CheckBoxにチェックを立てる
方がいいとの指示・要望なので・・・
開発環境はWinXP,VB.NET2003です。よろしくお願いします。
チェックが変更されたイベントで選択 Item 以外をなめて
チェックを外せばいいだけでは?
特攻隊長まるるうさんアドバイスありがとうございます。
>チェックが変更されたイベントで選択 Item 以外をなめて
Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object, _
ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
Dim i As Integer
'
If e.CurrentValue = CheckState.Unchecked Then
With Me.CheckedListBox1
For i = 0 To .Items.Count - 1
If .GetItemCheckState(i) = CheckState.Checked AndAlso _
i <> e.Index Then
.SetItemChecked(i, False)
End If
Next
End With
End If
End Sub
により無事解決いたしました。
コードの記述的にはこれで良いのか不安ですが希望の動作はするようです。
SelectedIndexChangedなどばかりに目がいっていて・・・反省します。
ツイート | ![]() |