• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

两个ListBox的互动操作,循环问题,请高手帮忙!请高手帮忙!

rybgroup 2004-11-02 09:52:01
操作目的是从ListBox1向ListBox2添加内容项,操作由Button1完成.出错情况是:第一次操作是选中ListBox1的第1项,向ListBox2添加了一个项,结果是正确的,第二次操作选中ListBox1的第2项,向ListBox2添加了一个项,结果也是正确的,第三次操作选中ListBox1的第3项,结果是在ListBox2里也添加了2个相同的项,第四次操作选中ListBox1的第4项,结果是在ListBox2里也添加了4个相同的项,第5次操作就添加了6个相同的项了!请问是哪错了,请高手指正.或者提供正确的代码.谢谢谢谢!
private void Button1_Click(object sender, System.EventArgs e)
{
int i,j;
int num=ListBox1.Items.Count; //赋值ListBox1的项目总数
int num2=ListBox2.Items.Count; //赋值ListBox2的项目总数
for(i=0;i<num;i++)
{
if(ListBox1.Items[i].Selected==true)
{
//判断ListBox2列表是否为空
if(num2==0) //为空
{
ListBox2.Items.Add(ListBox1.Items[i].Text.ToString());
}
else  //不为空
{
//判断该值是否在已存在
for(j=0;j<num2;j++)
{
if(ListBox2.Items[j].Text==ListBox1.Items[i].Text) //判断是否有重复
{
Response.Write("<Script>alert('该值已经存在')</Script>"); }
else
{ ListBox2.Items.Add(ListBox1.Items[i].Text.ToString());
}
}
}
}
}
}
...全文
101 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lxrxyz 2004-11-03
I服了you,自己问题都出来了还不知道怎么写
//判断该值是否在已存在
for(j=0;j<num2;j++)//问题在这里,你的num2是不断变大的,假设为5。
{
if(ListBox2.Items[j].Text==ListBox1.Items[i].Text) //判断是否有重复//假设不满足
{
Response.Write("<Script>alert('该值已经存在')</Script>"); }
else//从0到4,增加了5个重复值。
{ ListBox2.Items.Add(ListBox1.Items[i].Text.ToString());
break;//这里加这条就差不多了,自己试试吧。
}
}

回复
rybgroup 2004-11-03
那正确的语法应该怎么写?
回复
lxrxyz 2004-11-02
看出你的问题了:
//判断该值是否在已存在
for(j=0;j<num2;j++)//问题在这里,你的num2是不断变大的,假设为5。
{
if(ListBox2.Items[j].Text==ListBox1.Items[i].Text) //判断是否有重复//假设不满足
{
Response.Write("<Script>alert('该值已经存在')</Script>"); }
else//从0到4,增加了5个重复值。
{ ListBox2.Items.Add(ListBox1.Items[i].Text.ToString());
}
}
回复
lxrxyz 2004-11-02
没看出你的问题在哪里。
建议你这样,从listbox2向listbox1添加
int lineexist=0;//判断任务是否存在的变量,如果为1则存在,不用添加。
for(int i=0;i<this.listBox1.Items.Count;i++)
{
if (this.listBox1.Items[i].ToString()==this.listBox2.Text.ToString())
{
lineexist=1;
MessageBox.Show("111111111111");
break;
}
}
if(lineexist==0&&this.listBox2.Text.ToString().Trim()!="")
{
//向列表中添加项
this.listBox1.Items.Add(this.listBox2.Text.ToString());
}
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-11-02 09:52
社区公告

让您成为最强悍的C#开发者