- - PR -
Comboboxの表示項目の変更方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-10-08 09:27
お世話になっています。
VB.NETで、Windowsアプリケーションをしているのですが テキストボックスの値が変更されると、その値を元に コンボボックスの表示項目を変更したいのですが どのようにしたらいいのでしょうか? やりたい事 @テキストボックスの値を変更する。 A変更されたテキストボックスの値と、コンボボックスのValueMember(コンボボックスにデータセットをバインドしてます) が一致した場合、その値を元にしたDisplayMemberを表示する。 ご教授、宜しくお願い致します。 |
|
投稿日時: 2003-10-08 17:13
※勉強がてらに試した結果ですので,的外れの回答でしたら,参考程度にして下さい。
※C#での記述になります。 DataViewをComboBoxのDataSourceに使用しては如何でしょう。 (1)テキストボックスの値によって,コンボボックスの値を絞込みたい なら RowFilterにテキストボックスの値を設定する (2)テキストボックスの値によって,コンボボックスに表示する項目(列)を変更したい なら DisplayMemberにテキストボックスの値を設定する で対処できると思います。 ***当方で試した内容*** ・SQL Serverに以下のテーブルを作成 テーブル名:TABLE1 カラム: id char(2) code char(2) item1 nvarchar(50) item2 nvarchar(50) ・以下のレコードを追加 01, AA, item1-01-AA, item2-01-AA 02, AA, item1-02-AA, item2-02-AA 03, BB, item1-03-BB, item2-03-BB 04, BB, item1-04-BB, item2-04-BB 05, CC, item1-05-CC, item2-05-CC 06, CC, item1-06-CC, item2-06-CC ・Form1.csに"サーバーエクスプローラー" を使用してTABLE1を配置 ・DataSetの生成 ・textBox1, ComboBox1をForm1に配置 ・DataViewを宣言 private DataView dv = new DataView(); ・Form_Loadに以下のコードを記述 sqlDataAdapter1.Fill(dataSet11); dv.Table = dataSet11.TABLE1; comboBox1.DataSource = dv; comboBox1.DisplayMember = "item1"; ・textBox1_TextChangedに以下のコードを記述( (1)の場合 ) //今回はcode列を使用してフィルタをかけました //codeにAA,BB,CCが入るとcomboBoxが絞込み表示されます dv.RowFilter = "code = '" + textBox1.Text + "'"; ・textBox1_TextChangedに以下のコードを記述( (2)の場合 ) //item1, item2が入るとcomboBoxの表示が変わります comboBox1.DisplayMember = textBox1.Text; もっと良い方法をご存知の方,更なる回答を書き込み願います。 |
|
投稿日時: 2003-10-08 18:05
お世話になっています。
聖人さん、回答ありがとうございました。 聖人さんがおっしゃる通りにすると上手く Textboxの値が変更されると、ComboBoxのDisplayMemberが 変更されました。 すごく助かりました、ありがとうございました。 |
1