- - PR -
コンボボックスやリストボックスでコード値を扱う方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-15 17:15
これまでJavaでWebシステムを少々やっていた者です。
例 マスタテーブル名 M_SHAIN SHAIN_CD SHAIN_NAME 101 福沢諭吉 102 樋口一葉 103 野口英世 という場合、 コンボボックスやリストボックスを扱う際に、 社員名を画面に表示させて、 社員CDを表示させずに、 社員名を選択してボタンを押下したときに社員CDを取得しようとしています。 インデックスはSelectedIndexで取得できることは分かっているのですが、 社員CDを取得する方法をいろいろと調べたのですがなかなか見つかりません。 JavaでWebならば、 Map map = new HashMap; map.put("101", "福沢諭吉"); map.put("102", "樋口一葉"); map.put("103", "野口英世"); もしくは、 List list = new ArrayList; list.add(new LabelValueBean("福沢諭吉", "101")); list.add(new LabelValueBean("樋口一葉", "102")); list.add(new LabelValueBean("野口英世", "103")); とする処理を、VB.NETで実現したいのですが、 どなたかこのような処理をご経験の方がおられましたら、 ご教示頂けないでしょうか。 よろしくお願い致します。 |
|
投稿日時: 2008-06-15 17:46
これは私がC#×Windowsアプリ開発で使ってきた方法ですが、
考え方としては言語、Web・Winアプリ関係ないかなと思っているので一応参考までに…。 (1)「表示用名称」「内部値」の2つのプロパティを持った単純な内部クラスを作る (2)その内部クラスの配列をつくる (3)コンボボックスを例にとれば、 ・DataSourceに(2)の配列を設定 ・DisplayMemberに「表示用名称」を設定 ・ValueMemberに「内部値」を設定 処理でコレを使うときは、SelectedIndexではなく、 よりデータ中心に処理するためにSelectedValueを使っています。 |
|
投稿日時: 2008-06-15 17:57
カドルドエグ様
早速のレスありがとうございます。 VB.NETではまだ内部クラスをあつかったことがありませんが、 とにかくご教示頂いた内容を、 いろいろとやってみます。 [ メッセージ編集済み 編集者: pat 編集日時 2008-06-15 17:58 ] |
|
投稿日時: 2008-06-15 18:21
内部クラス (インナークラス) とは
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000889.html 例で示されたコードですと必要なさそうな気がしないまでもないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2008-06-30 14:51
じゃんぬねっとさんの
他の投稿を見させていただき、 内部クラスと別の方法で解決できました。 Dim list As New System.Collections.ArrayList() list.Add(New System.Collections.DictionaryEntry("101", "福沢諭吉")) list.Add(New System.Collections.DictionaryEntry("102", "樋口一葉")) list.Add(New System.Collections.DictionaryEntry("103", "野口英世")) Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList Me.ComboBox1.DataSource = list Me.ComboBox1.ValueMember = "Key" Me.ComboBox1.DisplayMember = "Value" ありがとうございました。 |
1