CheckedListBoxの単一選択

解決


試練  2006-05-02 20:16:24  No: 131237

CheckedListBoxコントロールのSelectionModeプロパティは
None か One しか指定できないと思いますが One にした場合でも
"一つしか選択できない" のではなく "一つずつ複数選択できる" と思います。
1つずつチェックを付けていく訳なんで当たり前の動きなのかもしれませんが
これを一つしかチェックできないように制御する方法があれば教えてもらえないでしょうか?

普通のListBoxであれば One にする事で1つの項目だけ選択できるとは
思うんですが(勘違いでなければ)、見た目上CheckBoxにチェックを立てる
方がいいとの指示・要望なので・・・

開発環境はWinXP,VB.NET2003です。よろしくお願いします。


特攻隊長まるるう  2006-05-02 20:53:59  No: 131238

チェックが変更されたイベントで選択 Item 以外をなめて
チェックを外せばいいだけでは?


試練  2006-05-02 22:42:39  No: 131239

特攻隊長まるるうさんアドバイスありがとうございます。

>チェックが変更されたイベントで選択 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などばかりに目がいっていて・・・反省します。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加