- ベストアンサー
チェックリストボックスの見える値と取れる値
VB2008で開発しています。 チェックリストボックスに表示させている値は名前で チェックが入ったときに取得したい値はコードです。 どうセットすると実現できるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リスト項目の表示名 = 項目のオブジェクトのToString これを利用して、次のような構造体(あるいはクラス)を作ってリストに放り込む方法があります。 Private Structure CustomListItem Public Caption As String Public Code As String Public Sub New(ByVal InitCaption As String, ByVal InitCode As String) Me.Caption = InitCaption Me.Code = InitCode End Sub Public Overrides Function ToString() As String ' Captionを項目の表示名とする Return Me.Caption End Function End Structure リスト作成とチェックされた項目のコードの取り出しはこんな感じです。 Private Sub CreateList() CheckedListBox1.Items.Add(New CustomListItem("項目1", "1111"), False) CheckedListBox1.Items.Add(New CustomListItem("項目2", "2222"), False) CheckedListBox1.Items.Add(New CustomListItem("項目3", "3333"), False) CheckedListBox1.Items.Add(New CustomListItem("項目4", "4444"), False) End Sub Private Sub GetCheckedItems() For Each objEnum As Object In CheckedListBox1.CheckedItems Console.WriteLine(CType(objEnum, CustomListItem).Code) Next End Sub ListBox/CheckedListBox/ComboBox等は全てこの方法で各項目に固有データを与えることが出来ます。
その他の回答 (1)
こんにちは。 CheckedListBoxは#1さんの方法で出来るので別の方法です。 ChecedListBoxの代わりにListViewを使う方法です。 ListViewでもチェックボックスの表示が出来、SubItemを追加することにより複数の値を格納できます。 参考にどうぞ。
お礼
ありがとうございます。 勉強になりました。