リストボックスのアイテムを検索
今回は、リストボックスの項目を検索する方法を2種類ご紹介します。
前方一致で検索する
項目名を前方一致で検索するには、リストボックスクラスのFindStringメソッドを使用します。
listBox名.FindString(“検索文字”, [検索開始位置])
[]は省略可能
それではサンプルを見てみましょう。
以下は、listBox1という名前のリストボックスにおいて、”A”から始まる項目の位置を検索する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int iFind; string sStr; //検索値をセット sStr = "A"; //先頭一致検索 iFind = listBox1.FindString(sStr); //見つかった場合は0から始まるインデックス番号、見つからなければ-1 if (iFind >= 0) { MessageBox.Show(sStr + "から始まる項目は" + (iFind + 1) + "番目に存在します。", "結果", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(sStr + "から始まる項目はありません。", "結果", MessageBoxButtons.OK, MessageBoxIcon.Information); } |
上記を実行することで、listBox1に設定されている項目の中で、最初に見つかった”A”から始まる項目の位置が取得されます。
今回は見つからなかった場合の処理もELSE句に記載しています。
なお、取得結果は1番目を0として出力する点に注意が必要です。
完全一致で検索する
項目名を完全一致で検索するには、リストボックスクラスのFindStringExactメソッドを使用します。
listBox名.FindStringExact(“検索文字”, [検索開始位置])
[]は省略可能
それではサンプルを見てみましょう。
以下は、listBox1という名前のリストボックスにおいて、”A”という項目の位置を検索する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int iFind; string sStr; //検索値をセット sStr = "A"; //完全一致検索 iFind = listBox1.FindStringExact(sStr); //見つかった場合は0から始まるインデックス番号、見つからなければ-1 if (iFind >= 0) { MessageBox.Show(sStr + "という項目は" + (iFind + 1) + "番目に存在します。", "結果", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(sStr + "という項目はありません。", "結果", MessageBoxButtons.OK, MessageBoxIcon.Information); } |
上記を実行することで、listBox1に設定されている項目の中で、最初に見つかった”A”という項目の位置が取得されます。
FindStringExactメソッドは完全一致検索ですので、”ABC”などの”A”を含むが一致はしない項目はヒットしません。
その他は、使い方や出力仕様等、FindStringメソッドと同様です。
以上が、リストボックスの項目を検索する方法です。
ぜひ参考にしてみてください。