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事件相关推荐

  1. (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?...

    有人问 (1)AutoPostBack="True" <asp:DropDownList id="DropDownList1" runat="s ...

  2. DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因

    相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...

  3. DropDownList 控件不能触发SelectedIndexChanged 事件

    相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBac ...

  4. C#--SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及联系

    三个事件的触发条件和区别 1 事件介绍 1.1 SelectedIndexChanged事件 1.2 SelectedValueChanged事件 1.3 SelectionChangeCommitt ...

  5. ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法

    转载:http://hi.baidu.com/haoyun2012/item/d780ca157a29b239b9318080 感谢原作者 ComboBox最经常使用的事件就是SelectedInde ...

  6. C#中ComboBox的SelectedIndexChanged事件由于触发时间而引起的“未将对象引用到对象实例”错误解决

    今天偶尔复习下WinForm开发,在用到ComboBox下拉框的时候,想用SelectedIndexChanged事件根据选中内容动态展示不同的数据,需求很简单,但是竟然出错了,后来发现其实就是Sel ...

  7. Asp.Net GridView点击/选中单行触发SelectedIndexChanged事件

    // RowDataBound(行数据绑定事件) protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e ...

  8. 为DataGridView中的DataGridViewComboBoxCell添加SelectedIndexChanged事件

    简介 DataGridView 是一个非常强大的数据控件,能够以类似Excel的方式处理二维数据.并且针对数据的不同格式,能够为数据添加对应的编辑控件,如下拉框DataGridViewComboBox ...

  9. VS2010 winform开发笔记---combox的SelectedIndexChanged事件及级联问题

    DisplayMember绑定需要显示的数据表字段, 而ValueMember绑定需要获取选择的项的值. 然后通过 combo.SelectedValue就可以取得选中项的值了. DisplayMem ...

最新文章

  1. GO语言教程1:Linux--debian/ubuntu下Go语言的安装
  2. AS400: 对象属性Domain和State
  3. Android短信验证
  4. maven 修改文件名_Maven 构建配置文件
  5. ssm_layui_billmanagersystem账单管理系统(全栈开发)
  6. 查找排序数组的最小值(js)
  7. wifi的country code
  8. fritzing元件太少_fritzing传感器元件库
  9. oracle em 证书错误,导航阻止
  10. DeFi 的纵向扩张:利率协议将带来去中心化金融世界新变革
  11. Java算法——加一(LeetCode第66题)
  12. Java常用工具类-发短信(集成华软通信短信网关)
  13. 微信小程序手把手教你实现类似Android中ViewPager控件效果
  14. 服务器光盘的正确使用方法,使用光盘刻录服务器,自动备份数据到光盘(成功案例)...
  15. Gensim官方教程翻译(二)——语料库与向量空间(Corpora and Vector Spaces)
  16. 100万美金VS100美金FBI本可以在iPhone 5c解锁案中省下一大笔钱
  17. 水库水雨情监测系统方案分享-水库水位监测-水情监测
  18. AWS使用(一)——申请付费版亚马逊云服务器的流程
  19. ccfcsp201903-2 24点游戏
  20. 问题描述:分布式防火墙能管控东西向的流量,是否对进入虚拟机的所有流量都能够管控,例如外部访问虚拟机的流量。因为我现在的防火墙默认策略是允许,我像知道如果我默认策略改成阻止,外部流量会不会阻止

热门文章

  1. java位移运算思路
  2. pytorch中的gather函数_理解pytorch几个高级选择函数(如gather)
  3. 实现人工智能辅助医疗翻译:促进医疗国际化
  4. uniapp滚动overflow-y: scroll失效问题
  5. 还在愁追不到女朋友吗?点开看这里。
  6. Silverlight自适应屏幕
  7. 原声表格中将thead固定,tobody超出高度滚动,滚动条样式改变
  8. 常见的字符串处理函数strstr,strlen,strtok
  9. 蓦然回首,那人却在灯火阑珊处----如何读入多行带空格的字符串
  10. 响铃:打赢“心智战争”,服装品牌只有“更张扬”