- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ListViewから選択中の文字列を取得)
ListViewの選択中の文字列を取得する方法について
このQ&Aのポイント
- VB2005の初心者です。ListViewから選択中の文字列によって処理を変えるプログラムを構築しようとしていますが、うまくいきません。
- ComboBoxの場合では条件式に「SelectedItem」を使用することでうまくいったのですが、ListViewの場合ではうまくいきません。
- ListViewから選択中の文字列を取得するには「.SelectedItems」では取得できないようです。詳しい方にご教授いただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ComboBoxはSelectedItemと単数形ですよね ListViewの場合SelectedItemsですから選択された複数の項目といったことになります SelectedItemsはコレクションになるので 最初の選択項目なら ListView1.SelectedItems(0)となりますので if ListView1.SelectedItems(0).Text = "テスト" Then といった具合に使います もっとも選択アイテムない場合も考えられるので上記の前に If ListView1.SelectedItems.Count = 0 then Exit Sub End if を追加したほうがいいかもしれません
お礼
解決しました。 For Each l_text As ListViewItem In ListView1.SelectedItems Dim subItem0 As String = l_text.SubItems(0).Text If l_text.SubItems(0).Text = "テスト1" Then 処理 End If If l_text.SubItems(0).Text = "テスト2" Then 処理 End If とSubItems(0)すればうまくいきました。
補足
ご返答ありがとうございます。 if ListView1.SelectedItems(0).Text = "テスト" Then 処理 End if 上記のように、最初に選択した"テスト"の項目は上手く動作したのですが それ以降、他の項目を選択したり、同じ項目を2度クリックすると例外エラーが発生します。 「'0' の InvalidArgument=Value は 'index' に対して有効ではありません。パラメータ名: index」 因みに、選択する項目は一つのみとするので「MultiSelect」は無効にしています。 これらの対処方法も教えていただけると幸いです。