- 締切済み
リストボックスの文字列の検索で困っています!
C#のプログラミングについて ボタン1を押したとき テキストボックス1にある文字(または数字)がリストボックス1に含まれているかを検索し もし含まれているならばテキストボックス2にその行を表示するプログラムはどうやって書けばいいですか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- magicalpass
- ベストアンサー率58% (378/648)
#2 です。 手抜きはいけませんね。FindStringsはそれで始まるアイテムを探すだけなので、文字列がどこにあるのかわからないならアイテムを全部取り出して調べてみないと分かりません。 int i; int num = this.listBox1.Items.Count; for (i = 0; i < num; i++) { String str = this.listBox.Items.Item(i); if (str.Contains(this.textBox1.Text)) { this.textBox2.Text = this.listBox.Items.Item(i); break; } }
- gootara555
- ベストアンサー率62% (5/8)
完全一致ではなく、部分一致で文字を探さないとできませんね。 for (int i = 0; i < listBox1.Items.Count; i++) { if (listBox1.Items[i].ToString().Contains(textBox1.Text)) { textBox2.Text = listBox1.Items[i].ToString(); break; } }
- magicalpass
- ベストアンサー率58% (378/648)
こういうのは? int idx = this.listBox1.FindStrings(this.textBox1.Text); if (idx != ListBox.NoMatches) { this.textBox2.Text = this.listBox1.Items.Item(idx); }
- gootara555
- ベストアンサー率62% (5/8)
こんな感じでしょうか。 if (this.listBox1.Items.Contains(this.textBox1.Text)) { int index = this.listBox1.Items.IndexOf(this.textBox1.Text); this.textBox2.Text = (index + 1 ).ToString(); }
お礼
ありがとうございます! とても参考になりました。 ですが・・・・なぜかできないんですよね; 質問が雑すぎたのかもしれませんが 例えば リストボックスに 1.ねこのひげ、いぬのあし、うし 2.うまのひずめ、ウサギの耳 ・ ・ ・ みたいにあって テキストボックス1に「ねこ」と入れて検索すると 1.ねこのひげ、いぬのあし、うし がテキストボックス2に表示されるような・・・・ 雰囲気ではわかってるつもりなんですけど どうしてもできません;;
お礼
ありがとうございます! すごいですね・・・参考になります