欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# SelectedIndexChanged事件詳解

 更新時(shí)間:2021年08月12日 17:03:44   作者:ruiqi317  
這篇文章主要介紹了C# SelectedIndexChanged事件詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

SelectionChangeCommitted事件

在設(shè)定datasource和displaymember和valuemember時(shí),以及手動(dòng)改變combobox索引和值時(shí)都不觸發(fā)該事件, 只是在界面選擇combobox不同值時(shí)觸發(fā)。

SelectedIndexChanged事件  當(dāng) SelectedIndex 屬性更改時(shí)發(fā)生,索引改變時(shí)觸發(fā)。

SelectedValueChanged事件   當(dāng) SelectedValue 屬性更改時(shí)發(fā)生,值改變時(shí)觸發(fā)。

區(qū)別:

  1. SelectedIndexChanged和SelectedValueChanged可以通過編程的方式更改屬性而觸發(fā)事件,但SelectionChangeCommitted事件必須由用戶操作選定選項(xiàng)才能觸發(fā)。
  2. 在初始化時(shí)(設(shè)置源)SelectedIndexChanged和SelectedValueChanged都會(huì)被調(diào)用,而SelectionChangeCommitted沒有這個(gè)問題。
  3. SelectionChangeCommitted也有一個(gè)小問題,當(dāng)打開下拉菜單,用鍵盤的上下光標(biāo)鍵選擇條目后(不用鼠標(biāo)點(diǎn)擊),鼠標(biāo)點(diǎn)擊其他控件,使焦點(diǎn)轉(zhuǎn)移,此時(shí)comboBox的Text屬性已改變,SelectedIndex屬性也已改變,但這樣的操作不會(huì)觸發(fā)SelectionChangeCommitted事件。結(jié)論:SelectionChangeCommitted一定要由鼠標(biāo)選擇才能觸發(fā)(個(gè)人感覺)。

關(guān)于事件的觸發(fā)

設(shè)置DataSource, DisplayMember, ValueMember不同順序觸發(fā)SelectedIndexChanged事件和SelectedValueChanged事件的次數(shù)

順序一:

this.comboBox1.DisplayMember = "userName";  (不觸發(fā))

this.comboBox1.ValueMember = "userAge";    (只觸發(fā)SelectedValueChanged)

this.comboBox1.DataSource = dt; (都觸發(fā))

SelectedValueChanged觸發(fā)兩次(總是先觸發(fā))SelectedIndexChanged,觸發(fā)一次 (設(shè)置DisplayMember屬性時(shí)不觸發(fā)兩種事件)

順序二:

this.comboBox1.ValueMember = "userAge";

this.comboBox1.DisplayMember = "userName";

this.comboBox1.DataSource = dt;

同上

順序三:

this.comboBox1.DataSource = dt; (都觸發(fā))

this.comboBox1.DisplayMember = "userName";(都觸發(fā))

this.comboBox1.ValueMember = "userAge";(只觸發(fā)SelectedValueChanged事件)

SelectedValueChanged觸發(fā)三次(總是先觸發(fā))SelectedIndexChanged,觸發(fā)兩次 (設(shè)置DisplayMember屬性時(shí)不觸發(fā)兩種事件)

順序四:

this.comboBox1.DataSource = dt; (都觸發(fā))

this.comboBox1.ValueMember = "userAge";(都觸發(fā)) 其中SelectedValueChanged觸發(fā)兩次

this.comboBox1.DisplayMember = "userName";(都觸發(fā))

SelectedValueChanged觸發(fā)四次(總是先觸發(fā))SelectedIndexChanged,觸發(fā)三次 (設(shè)置DisplayMember屬性時(shí)不觸發(fā)兩種事件)

說明:當(dāng)設(shè)置了DataSource 屬性后,SelectedValue 屬性值會(huì)默認(rèn)為第一行(所以會(huì)觸發(fā)SelectedIndexChanged事件和SelectedValueChanged事件),因此,如果不希望ComboBox自動(dòng)選擇第一行,還需在設(shè)置完DataSource 后自行將SelectedValue 設(shè)為“”。

到此這篇關(guān)于C# SelectedIndexChanged事件詳解的文章就介紹到這了,更多相關(guān)C# SelectedIndexChanged事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論