最近在公司里面開始使用DevExpress winform的第三方控件進行開發和維護,這里整理一些常用控件的資料以便於后續查看
ComboBoxEdit
這個控件和winform自帶的控件差不多,使用起來也方便,在designer頁面拖拽控件之后可以直接在頁面添加要顯示的項目:
后台的代碼控制也方便
1 cbBoxSex.Properties.Items.Add("全部"); 2 cbBoxSex.Properties.Items.Add("男"); 3 cbBoxSex.Properties.Items.Add("女"); 4 cbBoxSex.Properties.Items.Add("未知");
CheckedComboBoxEdit
此控件在combobox的下拉框的文本前面新加了checkbox,方便用戶選擇多個,添加內容的代碼和comboboxEdit類似:
1 List<string> weeks = new List<string>(); 2 for (int i = 1; i <= 7; i++) 3 { 4 weeks.Add(string.Format("{0}{1}", " 周", i)); 5 } 6 7 foreach (string item in weeks) 8 { 9 checkedComboBoxEdit.Properties.Items.Add(item, CheckState.Unchecked, true); 10 } 11 checkedComboBoxEdit.Properties.SeparatorChar = ',';
新增item的類型是 CheckedListBoxItem 。
這個控件和后面的LookupEdit一樣也支持數據源的綁定,只要設置DisplayMember和ValueMember屬性即可。
1 checkedComboBoxEdit.Properties.DataSource = advItems; 2 checkedComboBoxEdit.Properties.DisplayMember = "Name"; 3 checkedComboBoxEdit.Properties.ValueMember = "ID";
ListBoxControl
此控件和ComboboxEdit使用類似,但呈現的不是下拉框,代碼使用也類似:
1 listBoxControl.Items.Add("全部"); 2 listBoxControl.Items.Add("男"); 3 listBoxControl.Items.Add("女"); 4 listBoxControl.Items.Add("未知");
CheckedListBoxControl
此控件也是在listboxcontrol的內容中加上checkbox以便於用戶選擇,其也支持數據源:
1 checkedListBoxControl.DataSource = advItems; 2 checkedListBoxControl.DisplayMember = "Name"; 3 checkedListBoxControl.ValueMember = "ID";
SpinEdit
這個控件適合控制一些數字的顯示,比如年齡,使用起來也方便,后台的控制代碼如下:
spinEdit.Properties.Increment = 5; spinEdit.Properties.MinValue = 0; spinEdit.Properties.MaxValue = 200;
LookUpEdit
這個控件和comboboxEdit差不多,點擊按鈕是會有下拉的內容出來,但顯示的內容可以以多列的形式呈現。
后台控制代碼也好理解:
1. 在文本框中顯示的內容由DisplayMember屬性控制
2. 在文本框中綁定的字段由ValueMember熟悉控制
3. 下拉的多列行由LookUpColumnInfo控制
1 lookupEdit.Properties.DataSource = advItems; 2 lookupEdit.Properties.DisplayMember = "Name"; 3 lookupEdit.Properties.ValueMember = "ID"; 4 lookupEdit.Properties.Columns.Add(new LookUpColumnInfo("Name", "姓名")); 5 lookupEdit.Properties.Columns.Add(new LookUpColumnInfo("Card", "證件")); 6 lookupEdit.Properties.Columns.Add(new LookUpColumnInfo("Remark", "備注")); 7 lookupEdit.Properties.BestFitMode = BestFitMode.BestFitResizePopup;
數據源就是我們的實體list:
1 public class CbBoxItem 2 { 3 public Int32 ID { get; set; } 4 public string Name { get; set; } 5 public string Card { get; set; } 6 public string Remark { get; set; } 7 }
最后結果如下圖所示:
此控件還提供了自動提示功能,在文本框中輸入要查詢的內容可以方便快速的定位,而且可以在下拉框的按鈕后面新增刪除按鈕,這些的代碼如下:
1 lookupEdit.Properties.SearchMode = SearchMode.AutoComplete; 2 lookupEdit.Properties.TextEditStyle = TextEditStyles.Standard; 3 lookupEdit.Properties.Buttons.Add(new EditorButton(ButtonPredefines.Delete)); 4 lookupEdit.ButtonClick += LookupEdit_ButtonClick; 5 6 private void LookupEdit_ButtonClick(object sender, ButtonPressedEventArgs e) 7 { 8 if (e.Button.Kind == ButtonPredefines.Delete) 9 { 10 (sender as LookUpEdit).EditValue = null; 11 } 12 }
總結
以上是常用控件的總結,一般我們使用comboboxedit和lookupedit比較多,而且用數據源綁定也方便開發,綁定數據源時一般要設置DisplayMember和ValueMember,而在后去value時只要獲取EditValue屬性即可。