ListBoxで複数選択時のValueの取得
- 題名: ListBoxで複数選択時のValueの取得
- 著者: ゆう
- 日時: 2007/11/02 22:28:16
- ID: 20861
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ListBoxで複数選択時のValueの取得
- 著者: まどか
- 日時: 2007/11/03 2:16:03
- ID: 20863
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ListBoxで複数選択時のValueの取得
- 著者: ゆう
- 日時: 2007/11/05 23:14:31
- ID: 20866
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: ListBoxで複数選択時のValueの取得
- 著者: ゆう
- 日時: 2007/11/08 0:57:31
- ID: 20888
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: ListBoxで複数選択時のValueの取得
- 著者: ゆう
- 日時: 2007/11/08 0:58:48
- ID: 20889
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもありがとうございます。
以下について教えてください。
C# VS2005 WindowsXpで開発しています。
ListBoxを2つ用意し複数選択して相互にデータを移す処理を行っています。
もとのデータはDBから取得するのですがデータバインドすると編集できないため、初期表示時にDBから取得したデータを一旦ArrayListにいれ、それをListBoxにAddRangeしています。
ArrayListにはKeyとValueをもたせ、ListBoxへの表示はValueのみです。
listBox1(対応データはarrayList1)
listBox2(対応データはarrayList2)
最終的にデータの移動を行った後の結果を保存したいのでListBoxでのやりとりのつどArrayListにも反映する必要があるかと思っていますが表示しているValueは問題ないもののKeyがうまく取得できません。
具体的には以下のようにしています
まず呼び出し時に以下の処理をしています(ArrayListにデータ取得)
// 全リストを最初に取得してArrayList1にSet
dsList.Clear();
oda.Fill(dsList);
this.listBox1.ValueMember = "Key";
this.listBox1.DisplayMember = "Value";
for (int i = 0; i < int.Parse(dsList.Tables["tbl"].Rows.Count.ToString()); i++)
{
arrayList1.Add(new System.Collections.DictionaryEntry(dsList.Tables["tbl"].Rows[i]["KeyCode"], dsList.Tables["tbl"].Rows[i]["Name"]));
}
// listbox1に1件ずつ追加
this.listBox1.Items.AddRange(arrayList1.ToArray());
this.listBox2.ValueMember = "Key";
this.listBox2.DisplayMember = "Value";
// データ移動時の処理は以下です。
private void btnAdd_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count > 0)
{
int cnt = listBox1.SelectedItems.Count;
for (int i = 0; i < cnt; i++)
{
listBox2.Items.Add(listBox1.SelectedItems[i]);
// ここに arrayList2に上記のdataのAddが必要だと思っています。
}
for (int i = 0; i < cnt; i++)
{
listBox1.Items.Remove(listBox1.SelectedItems[0]);
allList1.RemoveAt(i);
}
listBox1.SelectedItems.Clear();
}
}
上記のコードにコメントをいれているのですが、selectedvalueがとれないのでどうしていいかわかりません。
どのようにしたらよいでしょうか?
なにとぞお教え願えませんでしょうか。