服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# SelectedIndexChanged事件详解

C# SelectedIndexChanged事件详解

2022-11-29 12:22ruiqi317 C#

这篇文章主要介绍了C# 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 设为“”。

到此这篇关于C# SelectedIndexChanged事件详解的文章就介绍到这了,更多相关C# SelectedIndexChanged事件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/ruiqi317/article/details/6857542

延伸 · 阅读

精彩推荐
  • C#Unity实现人物平滑转身

    Unity实现人物平滑转身

    这篇文章主要为大家详细介绍了Unity实现人物平滑转身,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    丢丢思密达11532022-08-20
  • C#C# 获取硬盘号,CPU信息,加密解密技术的步骤

    C# 获取硬盘号,CPU信息,加密解密技术的步骤

    这篇文章主要介绍了C# 获取硬盘号,CPU信息,加密解密技术的步骤,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...

    风云SH变幻7742022-10-28
  • C#C# 实现把double 存成两位精度小数

    C# 实现把double 存成两位精度小数

    这篇文章主要介绍了C# 实现把double 存成两位精度小数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    IT男青年4762022-10-21
  • C#Winform窗体如何改变语言类型

    Winform窗体如何改变语言类型

    这篇文章主要介绍了Winform窗体如何改变语言类型,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    一只独行的猿8872022-10-14
  • C#C#逆变与协变详解

    C#逆变与协变详解

    这篇文章主要为大家详细介绍了C#逆变与协变的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    DW03910502022-01-21
  • C#全面解读C#编程中的析构函数用法

    全面解读C#编程中的析构函数用法

    这篇文章主要介绍了C#编程中的析构函数用法,文中最后还整理了析构函数与Dispose()方法的区别,需要的朋友可以参考下...

    C#教程网7262021-11-09
  • C#C#随机数生成字母金字塔

    C#随机数生成字母金字塔

    这篇文章主要为大家详细介绍了C#随机数生成字母金字塔,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    在代码的世界里游走8922022-03-05
  • C#C#使用xsd文件验证XML格式是否正确的实现方法

    C#使用xsd文件验证XML格式是否正确的实现方法

    这篇文章主要介绍了C#使用xsd文件验证XML格式是否正确的实现方法,结合实例形式分析了C#针对xml文件的创建、验证相关操作技巧,需要的朋友可以参考下...

    PointNet4882021-12-20