我正在使用C#在Windows窗體上工作。我有兩個名爲listBox1
和listBox2
的列表框。我在這兩個列表框中都有4個項目。我可以從兩個列表框中選擇多個項目。我也有兩個按鈕。點擊button1
,我必須將多個選定的項目從listBox1
移動到listBox2
。同樣,在點擊button2
時,我必須將多個選定項目從listBox2
移至listBox1
。它如何在C#中完成?如何將多個選定項從一個列表框移動到另一個列表框
在此先感謝。
我正在使用C#在Windows窗體上工作。我有兩個名爲listBox1
和listBox2
的列表框。我在這兩個列表框中都有4個項目。我可以從兩個列表框中選擇多個項目。我也有兩個按鈕。點擊button1
,我必須將多個選定的項目從listBox1
移動到listBox2
。同樣,在點擊button2
時,我必須將多個選定項目從listBox2
移至listBox1
。它如何在C#中完成?如何將多個選定項從一個列表框移動到另一個列表框
在此先感謝。
A ListBox
有一個SelectedItems
屬性,您可以使用該屬性複製按鈕的單擊事件處理程序中的項目。就像這樣:
foreach(var item in listBox1.SelectedItems)
{
listBox2.Items.Add(item);
}
private void Move(ListControl source, ListControl destination)
{
List<ListItem> remove = new List<ListItem>();
foreach(var item in source.Items)
{
if(item.Selected == false) continue;
destination.Items.Add(item);
remove.Add(item);
}
foreach(var item in remove)
{
source.Items.Remove(item);
}
}
那麼你可以這樣調用
Move(listbox1, listbox2);
//or
Move(listbox2, listbox1);
listcontrol不具有Items屬性。將其更改爲列表框 – nawfal 2012-07-09 11:29:46
private void MoveListBoxItems(ListBox source, ListBox destination)
{
ListBox.SelectedObjectCollection sourceItems = source.SelectedItems;
foreach (var item in sourceItems)
{
destination.Items.Add(item);
}
while (source.SelectedItems.Count > 0)
{
source.Items.Remove(source.SelectedItems[0]);
}
}
用途: 在你的移動click事件從1到2按鈕:
MoveListBoxItems(listBox1, listBox2);
將它們移回:
MoveListBoxItems(listBox2, listBox1);
根據這個問題How to remove multiple selected items in ListBox?
private void button1_Click(object sender, EventArgs e)
{
for(int x = listBox1.SelectedIndices.Count - 1; x>= 0; x--)
{
int idx = listBox1.SelectedIndices[x];
listBox2.Items.Add(listBox1.Items[idx]);
listBox1.Items.RemoveAt(idx);
}
}
你可以這樣做。
private void button1_Click(object sender, EventArgs e)
{
foreach (var item in listBox1.SelectedItems)
{
listBox2.Items.Add(item);
}
for (int s = 0; s < listBox1.Items.Count; s++)
{
for (int t = 0; t < listBox2.Items.Count; t++)
{
if (listBox1.Items[s].ToString().Equals(listBox2.Items[t].ToString()))
{
listBox1.Items.RemoveAt(s);
}
}
}
}
private void move(ListBox source, ListBox destination) {
for (int i = 0; i <= source.Items.Count-1; i++)
{
destination.Items.Add(source.Items[i]);
}
source.Items.Clear();
}
什麼是列表框中的對象?只有字符串?或一個特定的對象? – 2011-12-22 17:52:31
listboxes中的對象是字符串 – 2011-12-22 18:03:18