ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决
2015-07-18 23:34
591 查看
最近自己在编写一个Winform的测试管理工具,遇到两个问题:1、两个combox控件的联动;2、联动效果实现后,更换第一个combox控件的值时,系统提示“设置 DataSource 属性后无法修改项集合”的错误问题。自己在网上查了很多,最终还是解决了以上问题
需求描述:实现两个combox控件的联动功能,例如:combox1有“瀑布式”、“迭代式”两个选项,combox2根据combox1的数据在数据库中查询,然后绑定到combox2,第一次选择combox1的值时,combox2的值有正确绑定,但再次更改combox1的值时,系统就报“设置 DataSource 属性后无法修改项集合”的错误
解决方法:
问题一:通过combox控件的SelectedIndexChanged方法实现多个下拉控件的数据联动
问题二:由于DataSet 默认为空引用,因此在清除下拉列表项的时候首先需将ComboBox.DataSource付空值“null”。
代码如下:
需求描述:实现两个combox控件的联动功能,例如:combox1有“瀑布式”、“迭代式”两个选项,combox2根据combox1的数据在数据库中查询,然后绑定到combox2,第一次选择combox1的值时,combox2的值有正确绑定,但再次更改combox1的值时,系统就报“设置 DataSource 属性后无法修改项集合”的错误
解决方法:
问题一:通过combox控件的SelectedIndexChanged方法实现多个下拉控件的数据联动
问题二:由于DataSet 默认为空引用,因此在清除下拉列表项的时候首先需将ComboBox.DataSource付空值“null”。
代码如下:
/// <summary> /// 项目类型选值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cbProType_SelectedIndexChanged(object sender, EventArgs e) { ProStageData(cbProStage, cbProType.Text); } /// <summary> /// 获取项目阶段数据 /// </summary> /// <param name="box">ComboBox类型控件名称</param> /// <param name="ProType">项目类型</param> private static void ProStageData(ComboBox box,string ProType) { CtbProStageBLL CproStage = new CtbProStageBLL(); List<CtbProStage> cProStageList = new List<CtbProStage>(); cProStageList = CproStage.GetModelList(" ProType='" + ProType + "'"); ///清空节点 box.DataSource = null; box.Items.Clear(); List<CtbProStage> clist = new List<CtbProStage>(); //使其Combox的第一项为空值 CtbProStage pf = new CtbProStage(); pf.ProStageName = ""; clist.Add(pf); ///添加一级节点 foreach (var prostage in cProStageList) { ///创建节点 CtbProStage pg = new CtbProStage(); pg.ProStageName = prostage.ProStageName; clist.Add(pg); } box.DataSource = clist; box.DisplayMember = "ProStageName"; }
相关文章推荐
- PHP使用数据库的并发问题
- HttpSessionListener的用法
- 使用IIS建立自己的网站、使用C#编写IIS模拟器,更好的理解Client和Server的relation
- JAVA笔记
- [CortexM0--stm32f0308]关于GPIO
- 人口预测模型Matlab实现Logistic曲线模型
- WinForm实现PUSH模式的报表功能
- C语言中内存分配那些事儿
- 20 Valid Parentheses
- openwrt 版本下载
- fork()函数详解
- IOS开发教程--如何去除tabbar顶部线条及设置背景图片
- linux程序设计——共享内存(第十四章)
- 2015071802 - 欢乐谷年卡
- MYSQL外键约束的参照操作
- 多线程
- 一个人运营的网站,月广告收入近$50万
- UICollection view or Tableview 使用
- Spring 框架的设计理念与设计模式分析
- 消息队列中间件的技术选型分析