首页 新闻 搜索 专区 学院

vs2010中windows窗体应用程序开发,combobox控件问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-17 16:50

获取combobox的text值,启动调试(f5)就会报错

 

 

但是我按开始执行不调试(ctrl+f5)就不会报错,弹出的对话框是获取的那个combobox的text的值,明显不是我想要的值,

求解,怎样才能消除这样的报错?

sweetolive的主页 sweetolive | 初学一级 | 园豆:169
提问于:2013-09-14 16:07
< >
分享
最佳答案
1

这个是COMBOBOX的通病! 在程序load的时候会调用COMBOBOX的SelectedIndexChanged事件,

解决方法一:先指定COMBOBOX的DisplayMember和ValueMember,然后再SelectedIndexChanged事件里面做判断.

解决方法二:在load中将ComboBox委托去掉,  ComboBox1.SelectedIndexChanged -= new EventHandler(ComboBox1_SelectedIndexChanged);,在绑定ComboBox的DataSource后在注册。ComboBox1.SelectedIndexChanged += new EventHandler(ComboBox1_SelectedIndexChanged);

解决方法三:自行google

收获园豆:10
何以解忧唯有撸码 | 菜鸟二级 |园豆:368 | 2013-09-16 12:59

tank you,你的方法ok了,还有一种方法就是,用foreach循环来填充数据

 ds = GetPhList();
            foreach (DataRow item in ds.Tables[0].Rows)
            {
                cboOdPhId.Items.Add(item["phId"]);
            }
            this.cboOdPhId.SelectedIndex = 0;

 

sweetolive | 园豆:169 (初学一级) | 2013-09-17 16:49
其他回答(1)
0

sphId获取错误了。

幻天芒 | 园豆:36662 (高人七级) | 2013-09-14 16:23

主要是我启动调试就会报错,但是我开始执行不调试就不会报错。。

支持(0) 反对(0) sweetolive | 园豆:169 (初学一级) | 2013-09-14 20:40

@sweetolive: 你修改为cboPhId.SeletedItem.Text看看~

支持(0) 反对(0) 幻天芒 | 园豆:36662 (高人七级) | 2013-09-15 00:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册