• 締切済み

VB.NET ListBox内の前方一致ではない文字列検索

VB.NETにてListBox内の文字に対し,前方一致ではなく含まれる文字列を検索したいと思っています。ListBox1.FindString("文字")やListBox1.Items.IndexOf("文字")は使ってみましたが,前方一致になってしまうため使えませんでした。ListBox1.Items.Contains("文字")が使えそうかなと考えましたが,うまく文字を検索できません。半角英数字は検索できないというわけでもなさそうです。どなたか,使える関数を教えてはいただけませんか?よろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

.NETFrameworkが2.0 つまりVB2005以降なら ArrayクラスのFindAllで一致する候補を探すメソッド実装しましょう 検索文字列の変数と一致判断用の関数を準備します Dim sMatch as String Function nyMatch(byVal S as string)   return s.Indexof( smatch ) > -1 End Function 何かのイベントで Dim ar() as String, subar() as string Redim ar( ListBox1.Items.Count-1 ) ListBox1.Items.CopyTo( ar, 0 ) sMatch = "item" subar = Array.FindAll( ar, AddressOf myMatch) といった具合で subarに一致する文字列を含むアイテムを取得で来ます ここで取得できた subarを使って ListBox1.Items.IndexOf( subar(0))などとやれば インデックスへの変換も出来るでしょう

関連するQ&A

専門家に質問してみよう