运维开发网

SelectedIndexChanged事件的详细介绍

运维开发网 https://www.qedev.com 2022-05-14 17:12 出处:网络
这篇文章主要介绍了C# SelectedIndexChanged事件详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下 SelectionChangeCommitted事件

这篇文章主要介绍了C# SelectedIndexChanged事件详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下 SelectionChangeCommitted事件

当设置datasource和displaymember和valuemember时,以及手动更改combobox索引和值时,不会触发此事件,只有在界面中选择combobox的不同值时才会触发此事件。

SelectedIndexChanged事件# 160;在SelectedIndex属性更改时发生,并在索引更改时触发。

SelectedValueChanged事件# 160;#160;在SelectedValue属性更改时发生,并在值更改时触发。

区别: SelectedIndexChanged和SelectedValueChanged可以通过编程的方式更改属性而触发事件,但SelectionChangeCommitted事件必须由用户操作选定选项才能触发。 在初始化时(设置源)SelectedIndexChanged和SelectedValueChanged都会被调用,而SelectionChangeCommitted没有这个问题。 SelectionChangeCommitted也有一个小问题,当打开下拉菜单,用键盘的上下光标键选择条目后(不用鼠标点击),鼠标点击其他控件,使焦点转移,此时comboBox的Text属性已改变,SelectedIndex属性也已改变,但这样的操作不会触发SelectionChangeCommitted事件。结论:SelectionChangeCommitted一定要由鼠标选择才能触发(个人感觉)。关于事件的触发

设置数据源、displaymember和valuemember以不同顺序触发SelectedIndexChanged事件和SelectedValueChanged事件的次数。

顺序一:

this . combobox 1 . display member = " userName ";#160;(未触发)

this . combobox 1 . value member = " user age ";#160;#160;#160;(仅触发SelectedValueChanged)

this . combobox 1 . data source = dt;(均已触发)

SelectedValueChanged触发两次(总是首先触发),SelectedIndexChanged触发一次(设置DisplayMember属性时不会触发两个事件)

顺序二:

this . combobox 1 . value member = " user age ";

this . combobox 1 . display member = " userName ";

this . combobox 1 . data source = dt;

同上

顺序三:

this . combobox 1 . data source = dt;(均已触发)

this . combobox 1 . display member = " userName ";(均已触发)

this . combobox 1 . value member = " user age ";(仅触发SelectedValueChanged事件)

SelectedValueChanged被触发三次(总是首先触发),SelectedIndexChanged被触发两次(设置DisplayMember属性时,两个事件不会被触发)

顺序四:

this . combobox 1 . data source = dt;(均已触发)

this . combobox 1 . value member = " user age ";(均已触发)其中SelectedValueChanged被触发两次。

this . combobox 1 . display member = " userName ";(均已触发)

SelectedValueChanged被触发四次(总是首先触发),SelectedIndexChanged被触发三次(设置DisplayMember属性时,两个事件不会被触发)

注意:设置DataSource属性时,SelectedValue属性的值将默认为第一行(因此将触发SelectedIndexChanged事件和SelectedValueChanged事件)。所以,如果不想让ComboBox自动选择第一行,需要在设置DataSource后,自己将SelectedValue设置为" "。

本文关于C# SelectedIndexChanged事件的详细解释到此为止。关于C# SelectedIndexChanged事件的更多信息

0

精彩评论

暂无评论...
验证码 换一张
取 消