DevExpress winform XtraEditor常用控件
最近在公司里面开始使用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属性即可。