两个listBox传值问题 WinForm
如何把listBox1中选择的多项传到listBox2中 并且删除原listBox1中的该N项 ?
注:WinForm 没有ListItem
解决问题马上结帖
问题点数:50、回复次数:13Top
1 楼xhsr(散人)回复于 2006-02-09 19:40:34 得分 10
SelectedObjectCollection selecteds = listBox1.SelectedItems
for(int i = selecteds.Count - 1; i >= 0; i--)
{
listBox2.Items.Add(selecteds[i]);
listBox1.Items.Remove(selecteds[i];
}
Top
2 楼kdg2000(小刚)回复于 2006-02-09 20:06:39 得分 0
SelectedObjectCollection不行
都下班回家了吗?Top
3 楼True1024()回复于 2006-02-09 21:35:04 得分 0
for(int i=0; i< listBox1.SelectedIndices.Count;i++)
{
listBox2.Items.Add(listBox1.Items[listBox1.SelectedIndices[i]]);
}
for(int x=0; x< listBox1.SelectedIndices.Count;x++)
{
listBox1.Items.Remove(listBox1.Items[listBox1.SelectedIndices[x]]);
}Top
4 楼True1024()回复于 2006-02-09 21:41:53 得分 10
//上述程序做出如下修改
//如果listBox2有初始数据的话,可以用数组记录添加到listBox2的项。
//dotnet2003 winxp 测试通过
for(int i=0; i< listBox1.SelectedIndices.Count;i++)
{
listBox2.Items.Add(listBox1.Items[listBox1.SelectedIndices[i]]);
}
for(int m=0; m< listBox2.Items.Count; m++)
{
listBox1.Items.Remove(listBox2.Items[m]);
}Top
5 楼Cnapollo(旁痞)回复于 2006-02-09 22:31:48 得分 10
foreach(object o in listBox1.SelectedItems)
listBox2.Items.Add(o);
foreach(object o in listBox2.Items)
listBox1.Items.Remove(o);
Top
6 楼kdg2000(小刚)回复于 2006-02-10 13:05:00 得分 0
在foreach循环中是不能remove项的。
问:
如何删除listBox中指定value的项?Top
7 楼lovvver(ElephantTalk.Bright)回复于 2006-02-10 13:47:22 得分 0
ListBox lb = new ListBox() ;
ListBox lb1 = new ListBox() ;
foreach(string s in lb.Items)
{
lb.Items.Remove(s) ;
lb1.Items.Add(s) ;
}Top
8 楼True1024()回复于 2006-02-10 19:58:08 得分 0
listBox1.Items.Remove("要删除的值");Top
9 楼Cnapollo(旁痞)回复于 2006-02-10 21:20:52 得分 0
to: kdg2000(小刚)
请看清楚,我在for什么Top
10 楼Cnapollo(旁痞)回复于 2006-02-10 21:29:48 得分 0
foreach(objectoinlistBox2.Items) ->listbox2
listBox1.Items.Remove(o); ->listBox1.
这样当然可以remove了Top
11 楼lidong6(立冬)回复于 2006-02-11 17:14:54 得分 10
以下代码没试通过:
int c=listBox1.SelectedItems.Count;
for (int i=0;i<c;i++)
{
listBox1.Items.Remove(listBox1.SelectedItems[0]);
}
这个问题真比较绕,以前就为这个问题费了好大劲儿.Top
12 楼zhzuo(秋枫)回复于 2006-02-12 11:50:05 得分 10
传递引用.
http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspxTop
13 楼coolduck(coolduck)回复于 2006-04-26 17:43:11 得分 0
经过验证,绝对可用
private void Add_Click(object sender, EventArgs e)
{
bool IsHave=false;
for (int i = (SourceFile.Items.Count) - 1; i >= 0; i--)
{
if (SourceFile.GetSelected(i)== true)
{
foreach (string li in TargetFile.Items)
{
if (li == SourceFile.Items[i].ToString())
{
IsHave = true;
}
}
if (!IsHave)
{
TargetFile.Items.Add(SourceFile.Items[i]);
SourceFile.Items.RemoveAt(i);
}
IsHave = false;
}
}
}Top




