コンボボックスドロップダウンの複数選択を設定する方法
VBでは、CheckListBoxコントロールを利用してコンボボックスドロップダウンの複数選択を実現できます。次のコードは例です。
- まず、VB の Windows フォーム アプリケーションで、コンボボックス コントロールとチェックリストボックス コントロールをフォームに配置します。
- フォームの Load イベントで、CheckListBox コントロールの Visible プロパティを False に設定し、初期状態では非表示にする。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CheckListBox1.Visible = False
End Sub
- ComboBoxのDropDownイベントで、CheckListBoxコントロールの位置と大きさをComboBoxと同じにし、VisibleプロパティをTrueにして、ドロップダウン時に表示されるように設定します。
Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs) Handles ComboBox1.DropDown
CheckListBox1.Location = ComboBox1.Location
CheckListBox1.Size = ComboBox1.Size
CheckListBox1.Visible = True
End Sub
- チェックボックスのItemCheckイベントにて、チェックされた項目はComboBoxのTextプロパティに追加され、チェック解除時にはTextから取り除かれます。
Private Sub CheckListBox1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckListBox1.ItemCheck
If e.NewValue = CheckState.Checked Then
ComboBox1.Text += CheckListBox1.Items(e.Index) + ";"
Else
ComboBox1.Text = ComboBox1.Text.Replace(CheckListBox1.Items(e.Index) + ";", "")
End If
End Sub
つまり、ユーザーがコンボボックスのドロップダウンを使用すると、チェックリストボックスが表示され、ユーザーはその中から複数の選択肢を選択できます。選択した選択肢はコンボボックスのテキストボックスで表示されます。