リストボックスの選択項目のインデックスを取得
今回は、リストボックスで選択されている項目のインデックス番号を取得する方法をご紹介します。
なお、選択されている「項目名」を取得する場合は、以下の記事をご参照ください。
1つの項目のインデックス番号を取得する
リストボックスはデフォルトの設定では1つの項目しか選択することができないようになっています。
まずはその状態での選択項目のインデックス番号を取得する方法をご紹介します。
リストボックスで選択されている1つの項目のインデックス番号を取得するには、リストボックスのSelectedIndexプロパティを使用します。
ListBox名.SelectedIndex
それではサンプルを見てみましょう。
以下は、Button1を押すと、ListBox1で選択されている項目のインデックス番号を取得してコンソールに出力する例です。
1 2 3 4 5 6 7 8 9 |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim iIndex As Integer 'ListBox1で選択されている項目のインデックス番号を取得 iIndex = ListBox1.SelectedIndex 'コンソールへ出力 Console.WriteLine(iIndex) End Sub |
上記を実行すると、Button1を押した際にListBox1で選択していた項目のインデックス番号がコンソールに表示されます。
複数の項目のインデックス番号を取得する
リストボックスでは、設定によっては複数の項目を同時に指定できる場合があります。
設定方法については以下の記事をご参照ください。
複数項目が選択されている場合に、選択されているすべての項目のインデックス番号を取得するには、リストボックスのSelectedIndicesプロパティを使用します。
ListBox名.SelectedIndices
それではサンプルを見てみましょう。
以下は、Button1を押すと、ListBox1で選択されているすべての項目のインデックス番号を取得してコンソールに出力する例です。
1 2 3 4 5 6 7 8 9 10 11 |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim sIndices As String = String.Empty 'ListBox1で選択されているすべての項目のインデックス番号を取得 For Each iIndex In ListBox1.SelectedIndices sIndices &= iIndex & vbCrLf Next 'コンソールへ出力 Console.WriteLine(sIndices) End Sub |
上記を実行すると、Button1を押した際にListBox1で選択していた、すべての項目のインデックス番号がコンソールに表示されます。
SelectedIndicesプロパティには、選択されているすべての項目のインデックス番号が格納されており、それをFor ~ Eachで項目数分1つずつ取り出しています。
For ~ Eachについては、以下の記事をご参照ください。
以上が、リストボックスで選択されている項目のインデックス番号を取得する「SelectedIndex」「SelectedIndices」プロパティの使い方です。
ぜひ参考にしてみてください。