ComboBox的Text发生改变为什么会引发SelectedIndexChanged事件?

wangtong2010 2010-07-18 07:21:42
ComboBox的Text发生改变为什么会引发SelectedIndexChanged事件?我感到很奇怪.问题出在窗体加载过程中,我给ComboBox的Text赋值,就引发了SelectedIndexChanged事件.如果把赋值语句注释掉,就不会引发了.这是怎么回事?该如何解决?
...全文
248 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
NDDavid 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);

comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
[/Quote]
正解
有话好好说 2010-07-19
  • 打赏
  • 举报
回复
这个是必然的,如果你输入的text在列表中没有,则返回的Combobox.SelectedIndex则为-1,你只要知道这一点,就可以利用这个来规避因为Text发生变化对程序带来的影响了。
wuzhenwz 2010-07-19
  • 打赏
  • 举报
回复
只要你text改变后与combobox中的项存在相同的,就一定会出现这个事件!系统会以为你是选择了这一项,而不是你输入的!
程序小海 2010-07-18
  • 打赏
  • 举报
回复
呵呵 我也碰见呢 学习中
zjx198934 2010-07-18
  • 打赏
  • 举报
回复
顶2楼
zhengqian529 2010-07-18
  • 打赏
  • 举报
回复
mark ..
denbes 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);

comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
[/Quote]
正确

也可以在设置一个变量,可以控制执行ComboBox1.SelectIndexChanged方法
比如:
bool re=false;
ComboBox.SelectIndexChanged(object sender,EventArgs e)
{
if(!re) return; //判断条件,是否再继续执行下去.
}
东莞寻香苑 2010-07-18
  • 打赏
  • 举报
回复
ComboBox自带的SelectedIndexChanged,找到comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);把它干掉
  • 打赏
  • 举报
回复
right
[Quote=引用 2 楼 wuyq11 的回复:]
comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);

comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
[/Quote]
捷哥1999 2010-07-18
  • 打赏
  • 举报
回复
ComboBox的Text修改为ComboBox中其他选项的内容时,自然会导致该选项被选中,于是触发了SelectedIndexChanged事件!
xk1126 2010-07-18
  • 打赏
  • 举报
回复
把你的代码贴出来!~~
wuyq11 2010-07-18
  • 打赏
  • 举报
回复
comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);

comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);

jointan 2010-07-18
  • 打赏
  • 举报
回复
原因:ComboBox的设计使然


解决办法是在执行完初始组件方法后,手动添加SelectedIndexChanged的事件处理程序

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧