プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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))などとやれば インデックスへの変換も出来るでしょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!