C#SelectedIndexChanged 问题
4个回答
展开全部
初始化之后默认执行了一次
你可以检查一下你的“窗口.Designer.cs”文件
看看是不是有生成的赋值语句
比如:comboBox1.[任何影响到Selectedndex的属性] = 什么 之类的语句
————————————
再仔细看了你的题目,我搞错了,原来是你自己引发的命令
你赋值 = -1之前,先把事件给注销掉
——————————————
comboBox1.SelectedIndexChanged -= comboBox1_SelectedIndexChanged
赋值
赋值完了之后再:
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged
你可以检查一下你的“窗口.Designer.cs”文件
看看是不是有生成的赋值语句
比如:comboBox1.[任何影响到Selectedndex的属性] = 什么 之类的语句
————————————
再仔细看了你的题目,我搞错了,原来是你自己引发的命令
你赋值 = -1之前,先把事件给注销掉
——————————————
comboBox1.SelectedIndexChanged -= comboBox1_SelectedIndexChanged
赋值
赋值完了之后再:
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged
更多追问追答
追答
再仔细看了你的题目,我搞错了,原来是你自己引发的命令
你赋值 = -1之前,先把事件给注销掉
——————————————
comboBox1.SelectedIndexChanged -= comboBox1_SelectedIndexChanged
赋值
赋值完了之后再:
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged
展开全部
在执行DataSource的时候会执行SelectedIndexChanged事件.给combobox.SelectedIndex=-1时也会再执行SelectedIndexChanged事件
追问
那要怎么做才可以。。。。。
追答
你可以在你的PageLoad里面这样写:
comboBox1.DataSource =ds.Table[""]
....
comboBox1.SelectedIndex = -1;
comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
然后把你的combobox在属性管理器中的事件删除掉就行了.
或者直接在你的Designer.cs文件中把这行代码删除掉.
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged_1);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你绑定数据的时候也会处罚SelectedIndexChanged时间,你可以在该事件中加个判断,if(SelectedValue==null) return;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你少绑定了一个ID。
更多追问追答
追问
求详情 新手 因为我想那个窗体一打开不弹框 但是他老是一打开就弹框
追答
你直接判断 comboBox1.text!="" 才进入 还有你少绑定一个ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询