場景 DevExpress的下拉框控制項ComboBoxEdit控制項的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102855898 在設置ComboBoxEdit的下拉框內容時除了最簡單的 comboBox.Proper ...
場景
DevExpress的下拉框控制項ComboBoxEdit控制項的使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102855898
在設置ComboBoxEdit的下拉框內容時除了最簡單的
comboBox.Properties.Items.Add("下拉選項1");
如果要添加鍵值對形式的數據該怎樣實現。
註:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關註公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載。
實現
即在Add選項時添加的不是普通的字元串,而是一個對象實體類,裡面有
鍵值對兩個屬性,在添加選項時是添加一個個的對象。
為了在顯示時顯示對象的value,需呀重寫對象的toString方法,使其
返回value。
新建實體類對象,必須要重寫其toString方法。
public class ControlModelItem { public ControlModelItem(string key,string value) { this.key = key; this.value = value; } private string key; public string Key { get { return key; } set { key = value; } } private string value; public string Value { get { return this.value; } set { this.value = value; } } public override string ToString() { return Value; } }
然後聲明下拉框
DevExpress.XtraEditors.ComboBoxEdit comboBox = new DevExpress.XtraEditors.ComboBoxEdit();
添加下拉框選項
int i=0; ComboBoxItemCollection coll = comboBox.Properties.Items; foreach(ControlModelItem controlModelItem in controlModelItems) { coll.Add(controlModelItem); if (controlModelItem.Value == currentCellValue) comboBox.SelectedIndex = i; i++; }
獲取選中項的key和value
if (comboBox.SelectedItem != null) { string key = (comboBox.SelectedItem as ControlModelItem).Key; string value = (comboBox.SelectedItem as ControlModelItem).Value; }
註意:
這裡是要將當前Cell的內容賦值給下框預設選中,如果通過SelectText強行賦值的話,則會導致當前選中
的key缺失,在獲取key時就會報錯。
可以通過上面這種判斷value相等時將當前index設置為選中項SelectedIndex。
獲取通過SelectedItem和下標的方式指定選中項。
此時就可以在下拉框的選項改變事件中獲取當前選中項的key和value
comboBox.SelectedValueChanged += comboBox_SelectedValueChanged;
private void comboBox_SelectedValueChanged(object sender, EventArgs e) { DevExpress.XtraEditors.ComboBoxEdit comboBox = sender as ComboBoxEdit; ControlModelItem controlModelItem = comboBox.SelectedItem as ControlModelItem; string controlModelItemkey = controlModelItem.Key; switch (controlModelItemkey) { //恆壓 case "ConstantVoltage": break; default: break; } }