SelectedIndexChanged事件
SelectionChangeCommitted事件
在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发该事件, 只是在界面选择combobox不同值时触发。
SelectedIndexChanged事件 当 SelectedIndex 属性更改时发生,索引改变时触发。
SelectedValueChanged事件 当 SelectedValue 属性更改时发生,值改变时触发。
--------------------------------------------------------------------------------------------------------------------------
区别:
1、SelectedIndexChanged和SelectedValueChanged可以通过编程的方式更改属性而触发事件,但SelectionChangeCommitted事件必须由用户操作选定选项才能触发。
2、在初始化时(设置源)SelectedIndexChanged和SelectedValueChanged都会被调用,而SelectionChangeCommitted没有这个问题。
3、SelectionChangeCommitted也有一个小问题,当打开下拉菜单,用键盘的上下光标键选择条目后(不用鼠标点击),鼠标点击其他控件,使焦点转移,此时comboBox的Text属性已改变,SelectedIndex属性也已改变,但这样的操作不会触发SelectionChangeCommitted事件。结论:SelectionChangeCommitted一定要由鼠标选择才能触发(个人感觉)。
--------------------------------------------------------------------------------------------------------------------------
关于事件的触发
设置DataSource, DisplayMember, ValueMember不同顺序触发SelectedIndexChanged事件和SelectedValueChanged事件的次数
顺序一:
this.comboBox1.DisplayMember = "userName"; (不触发)
this.comboBox1.ValueMember = "userAge"; (只触发SelectedValueChanged)
this.comboBox1.DataSource = dt; (都触发)
SelectedValueChanged触发两次(总是先触发)SelectedIndexChanged,触发一次 (设置DisplayMember属性时不触发两种事件)
顺序二:
this.comboBox1.ValueMember = "userAge";
this.comboBox1.DisplayMember = "userName";
this.comboBox1.DataSource = dt;
同上
顺序三:
this.comboBox1.DataSource = dt; (都触发)
this.comboBox1.DisplayMember = "userName";(都触发)
this.comboBox1.ValueMember = "userAge";(只触发SelectedValueChanged事件)
SelectedValueChanged触发三次(总是先触发)SelectedIndexChanged,触发两次 (设置DisplayMember属性时不触发两种事件)
顺序四:
this.comboBox1.DataSource = dt; (都触发)
this.comboBox1.ValueMember = "userAge";(都触发) 其中SelectedValueChanged触发两次
this.comboBox1.DisplayMember = "userName";(都触发)
SelectedValueChanged触发四次(总是先触发)SelectedIndexChanged,触发三次 (设置DisplayMember属性时不触发两种事件)
说明:当设置了DataSource 属性后,SelectedValue 属性值会默认为第一行(所以会触发SelectedIndexChanged事件和SelectedValueChanged事件),因此,如果不希望ComboBox自动选择第一行,还需在设置完DataSource 后自行将SelectedValue 设为“”。
SelectedIndexChanged事件相关推荐
- (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?...
有人问 (1)AutoPostBack="True" <asp:DropDownList id="DropDownList1" runat="s ...
- DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因
相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...
- DropDownList 控件不能触发SelectedIndexChanged 事件
相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...
- C#--SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及联系
三个事件的触发条件和区别 1 事件介绍 1.1 SelectedIndexChanged事件 1.2 SelectedValueChanged事件 1.3 SelectionChangeCommitt ...
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
转载:http://hi.baidu.com/haoyun2012/item/d780ca157a29b239b9318080 感谢原作者 ComboBox最经常使用的事件就是SelectedInde ...
- C#中ComboBox的SelectedIndexChanged事件由于触发时间而引起的“未将对象引用到对象实例”错误解决
今天偶尔复习下WinForm开发,在用到ComboBox下拉框的时候,想用SelectedIndexChanged事件根据选中内容动态展示不同的数据,需求很简单,但是竟然出错了,后来发现其实就是Sel ...
- Asp.Net GridView点击/选中单行触发SelectedIndexChanged事件
// RowDataBound(行数据绑定事件) protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e ...
- 为DataGridView中的DataGridViewComboBoxCell添加SelectedIndexChanged事件
简介 DataGridView 是一个非常强大的数据控件,能够以类似Excel的方式处理二维数据.并且针对数据的不同格式,能够为数据添加对应的编辑控件,如下拉框DataGridViewComboBox ...
- VS2010 winform开发笔记---combox的SelectedIndexChanged事件及级联问题
DisplayMember绑定需要显示的数据表字段, 而ValueMember绑定需要获取选择的项的值. 然后通过 combo.SelectedValue就可以取得选中项的值了. DisplayMem ...
最新文章
- GO语言教程1:Linux--debian/ubuntu下Go语言的安装
- AS400: 对象属性Domain和State
- Android短信验证
- maven 修改文件名_Maven 构建配置文件
- ssm_layui_billmanagersystem账单管理系统(全栈开发)
- 查找排序数组的最小值(js)
- wifi的country code
- fritzing元件太少_fritzing传感器元件库
- oracle em 证书错误,导航阻止
- DeFi 的纵向扩张:利率协议将带来去中心化金融世界新变革
- Java算法——加一(LeetCode第66题)
- Java常用工具类-发短信(集成华软通信短信网关)
- 微信小程序手把手教你实现类似Android中ViewPager控件效果
- 服务器光盘的正确使用方法,使用光盘刻录服务器,自动备份数据到光盘(成功案例)...
- Gensim官方教程翻译(二)——语料库与向量空间(Corpora and Vector Spaces)
- 100万美金VS100美金FBI本可以在iPhone 5c解锁案中省下一大笔钱
- 水库水雨情监测系统方案分享-水库水位监测-水情监测
- AWS使用(一)——申请付费版亚马逊云服务器的流程
- ccfcsp201903-2 24点游戏
- 问题描述:分布式防火墙能管控东西向的流量,是否对进入虚拟机的所有流量都能够管控,例如外部访问虚拟机的流量。因为我现在的防火墙默认策略是允许,我像知道如果我默认策略改成阻止,外部流量会不会阻止
热门文章
- java位移运算思路
- pytorch中的gather函数_理解pytorch几个高级选择函数(如gather)
- 实现人工智能辅助医疗翻译:促进医疗国际化
- uniapp滚动overflow-y: scroll失效问题
- 还在愁追不到女朋友吗?点开看这里。
- Silverlight自适应屏幕
- 原声表格中将thead固定,tobody超出高度滚动,滚动条样式改变
- 常见的字符串处理函数strstr,strlen,strtok
- 蓦然回首,那人却在灯火阑珊处----如何读入多行带空格的字符串
- 响铃:打赢“心智战争”,服装品牌只有“更张扬”