PDA

View Full Version : Cứu Mình Bài C# Winform Với!



thien_suden
20-03-2011, 13:50
Mình có 1 chương trình yêu cầu chuyển các tên được chuyển từ ListBox1 sang ListBox2.Mình đã chỉnh SelectionMode là Multisimple và code thế này:

private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < list1.Items.Count; i++)
{
if (list1.Items[i] == list1.SelectedItem)
{
list2.Items.Add(list1.Items[i]);
}
}

}

Khổ nỗi nó chỉ chuyển có mỗi 1 tên!các bạn giúp với

ziddu
20-03-2011, 15:14
if (list1.Items[i] == list1.SelectedItem)
do cái dòng đó nên nó chuyển một cái selected

anhdh
20-03-2011, 15:40
private void MoveItems(ListBox lstNguon, ListBox lstDich)
{
foreach(object item in lstNguon.SelectedItems)
{
lstDich.Items.Add(item);
}
}

Tuy nhiên đoạn code này chưa remove những item đã chuyển qua listBox2. Nếu những item trong listBox1 là những đối tượng, có value thì việc remove chúng rất đơn giản. Ví dụ:


...
listBox1.DataSource = dataSource;
listBox1.DisplayMember = "TenSinhVien";
listBox1.ValueMember = "MaSinhVien";
...

private void MoveItems(ListBox lstNguon, ListBox lstDich)
{
foreach(SinhVien sv in lstNguon.SelectedItems)
{
lstDich.Items.Add(sv);
lstNguon.Remove(sv.MaSinhVien);
}
}