时间:2021-07-01 10:21:17 帮助过:37人阅读
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0;i -- )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
this.listBox1.Items.Remove(i);
}
上面虽然实现了功能但是有一个问题,就是左边的项到了右边后变成了倒序。这是我们需要将添加和移出分开写,代码:
代码如下:
for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
this.listBox1.Items.Remove(i);
}
到现在为止还一个问题就是当选择框中的前面几个项的时候右移没有问题,但选择后面几个项时移到右边框中的是后面几个项,而左边框中移出的是前面几个项,造成这个问题的原因是我们将
SelectedItems和Items混为一谈了。这是很多初学者容易犯的错误。代码:
代码如下:
for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox1.Items.Remove(menu);
}
这样的话就对了。
个人自学不知说的对不对,希望各位支持支持,欢迎指正。