小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C#

 行走在理想邊緣 2021-06-11

三個事件的觸發(fā)條件和區(qū)別


SelectedIndexChanged事件


索引改變時即觸發(fā)嗎,可以通過編程觸發(fā)

SelectedValueChanged事件


值改變時觸發(fā),可以通過編程觸發(fā)

SelectionChangeCommitted事件


在設(shè)定datasource和displaymember和valuemember時,以及手動改變combobox索引和值時都不觸發(fā)該事件, 只是在界面選擇combobox不同值時觸發(fā),即只有通過界面點(diǎn)擊修改combobox的值才會觸發(fā)此事件

區(qū)別


1、SelectedIndexChanged和SelectedValueChanged可以通過編程的方式更改屬性而觸發(fā)事件,但SelectionChangeCommitted事件必須由用戶操作選定選項才能觸發(fā)。

2、在初始化時(設(shè)置源)SelectedIndexChanged和SelectedValueChanged都會被調(diào)用,而SelectionChangeCommitted沒有這個問題。

不同的代碼順序觸發(fā)的先后順序和次數(shù)


關(guān)于在編程時通過設(shè)置DataSource, DisplayMember, ValueMember不同順序均可觸發(fā)SelectedIndexChanged事件和SelectedValueChanged事件的次數(shù),但是不會觸發(fā)SelectionChangeCommitted

順序一


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

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

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

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

順序二


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

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

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

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

順序三


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

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

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

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

順序四:


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

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

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

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

分析


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

轉(zhuǎn)載:http://blog.csdn.net/gatieme/article/details/50405672

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多