1、DeVExpress控件入门简介简介:XtraEditors Library是专门为可视化的Studio.NET设计的最优化的一套100的C#控件 XtraEdiotors Library是一款具有革命性的超过20种数据编辑控制的控件它是国内第一个适合于.NET框架类型的控件。广州易麦科技广州易麦科技 http:/http:/准备工作n n1.DevExpress控件的安装n n2.Demo查看n n3.帮助文档使用广州易麦科技广州易麦科技 http:/http:/一:与.net基本的控件比较n n1:命名空间(NameSpace)n 基本控件的类都在System.Windows.Forms的
2、命名控件下n nDevExpress的控件类在DevExpress命名空间下广州易麦科技广州易麦科技 http:/http:/2:可以代替.net的控件n nDevExpress的大部分控件都已可以代码.net的基本控件。n n如:n n文本框:n nSystem.Windows.Forms.TextBox-DevExpress.XtraEditors.TextEditn n按钮:n nSystem.Windows.Forms.Button-DevExpress.XtraEditors.SimpleButtonn n下拉框:n nSystem.Windows.Forms.ComboBox-De
3、vExpress.XtraEditors.ComboBoxEdit广州易麦科技广州易麦科技 http:/http:/n n日 期:n nSystem.Windows.Forms.DateTimePicker-DevExpress.XtraEditors.DateEdit/DevExpress.XtraEditors.TimeEditn n复选框n nSystem.Windows.Forms.CheckBox-DevExpress.XtraEditors.CheckEditn n这里就不一一列举了,认真看看,相信一定找出很多可以替代的控件广州易麦科技广州易麦科技 http:/http:/二:几个
4、比较重要、常用的属性n n1:EditValuen n DevExpress.XtraEditors.*Edit的控件都不可少的一个EditValue属性。如:DevExpress.XtraEditors.*Editn n 通常,EditValue会跟Text的值是一样的。只是EditValue的类型为Object,Text的属性为String,n n也就是EditValue通常可以代替Text属性。n n2:Enable和Visablen n 是否禁用和是否可见广州易麦科技广州易麦科技 http:/http:/n n3:Propertiesn n设置控件一些特征n nDevExpress.X
5、traEditors.TextEdit txt=.;n n例:n n是否只读n ntxt.Properties.ReadOnly=true;n n不允许获得焦点n ntxt.Properties.AllowFocused=false;n n不允许空值输入n ntxt.Properties.AllowNullInput=true;/当这个属性应用在TimeEdit中,它的清除按钮,将会禁用(灰掉)广州易麦科技广州易麦科技 http:/http:/n n禁止编辑器输入n n如:n n ComboBoxEdit c=.;n n c.Properties.TextEditStyle=DevExpres
6、s.XtraEditors.Controls.TextEditStyles.DisableTextEditor;/只选模式,不能输入文本广州易麦科技广州易麦科技 http:/http:/n n4:Appearancen n设置风格。Dexpress把所有设置控件风格的特性都放到Appearance属性下。n n例:n nDevExpress.XtraEditors.SimpleButton btn=.;n nbtn.Appearance.ForeColor=Color.Red;/前景色n nbtn.Appearance.BackColor=Color.Red;/背景色广州易麦科技广州易麦科技
7、http:/http:/n n Appearance.TextOptionsn n文本对齐操作n n例:n nbtn.Appearance.TextOptions.HAlignment=DevExpress.Utils.HorzAlignment.Center;/居中对齐n nbtn.Appearance.TextOptions.WordWrap=DevExpress.Utils.WordWrap.Wrap;/自动换行。当控件的宽度容不下文本的长度,会自动换行。n n注意,在某些控件中Apperarance是在Properties属性下的n n如:n nDevExpress.XtraEdito
8、rs.TextEdit txt=.;n ntxt.Properties.Appearance.ForeColor=Color.Red;广州易麦科技广州易麦科技 http:/http:/三:几个常用的控件n n1:用强大的LookUpEdit代替ComboBox 1.1 ComboBox不支持数据绑定n n2.1 由于DevExpress的ComboBox天生的数据绑定缺陷,所以有时我们要做数据绑定,不得不使用下n n“功能过剩”的LooUpEdit。如下代码,可用实现一个ComboBox:广州易麦科技广州易麦科技 http:/http:/ /禁止文本输入禁止文本输入禁止文本输入禁止文本输入 t
9、his.lookUpEdit1.Properties.TextEditStyle=this.lookUpEdit1.Properties.TextEditStyle=DevExpress.XtraEditors.Controls.TextEditStyles.DisableTexDevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;tEditor;/默认为默认为默认为默认为nullnull的显示的显示的显示的显示 this.lookUpEdit1.Properties.NullText=this.lookUpEdit1
10、.Properties.NullText=请选择类别请选择类别请选择类别请选择类别;/加入一个显示列加入一个显示列加入一个显示列加入一个显示列 this.lookUpEdit1.Properties.Columns.Add(new this.lookUpEdit1.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo(NamDevExpress.XtraEditors.Controls.LookUpColumnInfo(Name);e);this.lookUpEdit1.Properties.Sh
11、owHeader=false;/this.lookUpEdit1.Properties.ShowHeader=false;/不显不显不显不显示页眉(包括列头)示页眉(包括列头)示页眉(包括列头)示页眉(包括列头)this.lookUpEdit1.Properties.ShowFooter=false;/this.lookUpEdit1.Properties.ShowFooter=false;/不显不显不显不显示页脚(包括关闭按钮)示页脚(包括关闭按钮)示页脚(包括关闭按钮)示页脚(包括关闭按钮)this.lookUpEdit1.Properties.DisplayMember=this.loo
12、kUpEdit1.Properties.DisplayMember=Name;/Name;/要显示的字段要显示的字段要显示的字段要显示的字段,Text,Text获得获得获得获得 this.lookUpEdit1.Properties.ValueMember=this.lookUpEdit1.Properties.ValueMember=Value;/Value;/实际值的字段实际值的字段实际值的字段实际值的字段,EditValue,EditValue获得获得获得获得 /数据绑定数据绑定数据绑定数据绑定 ICollection list=Global.ClassCategoryList;ICol
13、lection list=Global.ClassCategoryList;this.lookUpEdit1.Properties.DataSource=list;/this.lookUpEdit1.Properties.DataSource=list;/绑定数绑定数绑定数绑定数据据据据 this.lookUpEdit1.Properties.DropDownRows this.lookUpEdit1.Properties.DropDownRows=list.Count;/=list.Count;/设置行数设置行数设置行数设置行数(根据这个自动设置高度根据这个自动设置高度根据这个自动设置高度根
14、据这个自动设置高度)广州易麦科技广州易麦科技 http:/http:/n n 2:GridControln nGridControl可以代替.net的System.Windows.Forms.DataGrid控件。n nGirdControl只是一个容器控件,必须要求GridView视图作为它的子控件。n nGridControl可以包含多个视图,可以实现视图的切换。n n每个视图必须包含列(Column)n nGridControl支持层级视图广州易麦科技广州易麦科技 http:/http:/GridControlGridControl常设置属性常设置属性常设置属性常设置属性 使用导航器使用
15、导航器使用导航器使用导航器 this.gridControl1.UseEmbeddedNavigator=true;this.gridControl1.UseEmbeddedNavigator=true;this.gridControl1.EmbeddedNavigator.Buttons.Append.Visthis.gridControl1.EmbeddedNavigator.Buttons.Append.Visible=false;ible=false;this.gridControl1.EmbeddedNavigator.Buttons.CancelEdit.this.gridCont
16、rol1.EmbeddedNavigator.Buttons.CancelEdit.Visible=false;Visible=false;this.gridControl1.EmbeddedNavigator.Buttons.Edit.Visible this.gridControl1.EmbeddedNavigator.Buttons.Edit.Visible=false;=false;this.gridControl1.EmbeddedNavigator.Buttons.EndEdit.Vithis.gridControl1.EmbeddedNavigator.Buttons.EndEd
17、it.Visible=false;sible=false;this.gridControl1.EmbeddedNavigator.Buttons.Remove.Vithis.gridControl1.EmbeddedNavigator.Buttons.Remove.Visible=false;sible=false;this.gridControl1.EmbeddedNavigator.Buttons.First.Visiblthis.gridControl1.EmbeddedNavigator.Buttons.First.Visible=true;e=true;this.gridContro
18、l1.EmbeddedNavigator.Buttons.Last.Visiblthis.gridControl1.EmbeddedNavigator.Buttons.Last.Visible=true;e=true;this.gridControl1.EmbeddedNavigator.Buttons.Next.Visiblthis.gridControl1.EmbeddedNavigator.Buttons.Next.Visible=true;e=true;this.gridControl1.EmbeddedNavigator.Buttons.NextPage.this.gridContr
19、ol1.EmbeddedNavigator.Buttons.NextPage.Visible=true;Visible=true;this.gridControl1.EmbeddedNavigator.Buttons.Prev.Visiblthis.gridControl1.EmbeddedNavigator.Buttons.Prev.Visible=true;e=true;this.gridControl1.EmbeddedNavigator.Buttons.PrevPage.this.gridControl1.EmbeddedNavigator.Buttons.PrevPage.Visib
20、le=true;Visible=true;广州易麦科技广州易麦科技 http:/http:/GridViewGridView常设置属性常设置属性常设置属性常设置属性 this.gridView1.OptionsBehavior.Editable=this.gridView1.OptionsBehavior.Editable=false;/false;/禁止编辑禁止编辑禁止编辑禁止编辑 this.gridView1.OptionsCustomization.AllowFilter=this.gridView1.OptionsCustomization.AllowFilter=false;/fal
21、se;/不允许使用过滤不允许使用过滤不允许使用过滤不允许使用过滤 this.gridView1.OptionsCustomization.AllowSort this.gridView1.OptionsCustomization.AllowSort=false;/=false;/不允许使用排序不允许使用排序不允许使用排序不允许使用排序 this.gridView1.OptionsView.ShowGroupPanel this.gridView1.OptionsView.ShowGroupPanel=false;/=false;/不显示组面板不显示组面板不显示组面板不显示组面板 this.gr
22、idView1.OptionsView.ColumnAutoWidth this.gridView1.OptionsView.ColumnAutoWidth=true;/=true;/如果宽度溢出,自动出现滚动条如果宽度溢出,自动出现滚动条如果宽度溢出,自动出现滚动条如果宽度溢出,自动出现滚动条 this.gridView1.OptionsSelection.EnableAppearanceFthis.gridView1.OptionsSelection.EnableAppearanceFocusedCell=false;/ocusedCell=false;/禁止单元格获得焦点禁止单元格获得焦
23、点禁止单元格获得焦点禁止单元格获得焦点 this.gridView1.Appearance.SelectedRow.BackColor this.gridView1.Appearance.SelectedRow.BackColor=Color.Transparent;/=Color.Transparent;/选择的行背景透明选择的行背景透明选择的行背景透明选择的行背景透明广州易麦科技广州易麦科技 http:/http:/ 事件事件事件事件/订阅行焦点改变事件订阅行焦点改变事件订阅行焦点改变事件订阅行焦点改变事件this.gridView1.FocusedRowChanged+=new this
24、.gridView1.FocusedRowChanged+=new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandDevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(this.gridView1_FocusedRowChanged);ler(this.gridView1_FocusedRowChanged);/验证编辑器(单元格)值输入验证编辑器(单元格)值输入验证编辑器(单元格)值输入验证编辑器(单元格)值输入this.gridView1.Validati
25、ngEditor+=new this.gridView1.ValidatingEditor+=new DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEvDevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventHandler(this.gridView1_ValidatingEditor);entHandler(this.gridView1_ValidatingEditor);private void gridView1_ValidatingEditor
26、(object sender,private void gridView1_ValidatingEditor(object sender,DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEvDevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)entArgs e)if(gridView1.FocusedColumn=col if(gridView1.FocusedColumn=col产品名称产品名称产品名称产品名称)if(string.I
27、sNullOrEmpty(e.Value as string)if(string.IsNullOrEmpty(e.Value as string)e.ErrorText=e.ErrorText=产品名称不能为空产品名称不能为空产品名称不能为空产品名称不能为空;e.Valid=false;e.Valid=false;广州易麦科技广州易麦科技 http:/http:/ DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(this.gridView1_RowStyle);private void gridView1_RowStyle(object
28、sender,DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)object value=gridView1.GetRowCellValue(e.RowHandle,中止中止);if(value!=null&(bool)value)e.Appearance.ForeColor=Color.Red;广州易麦科技广州易麦科技 http:/http:/this.gridView1.CustomColumnDisplayText+=new this.gridView1.CustomColumnDisplayText+=new DevExpress.X
29、traGrid.Views.Base.CustomColumnDisplayTextEvenDevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gridView1_CustomColumnDisplayText);tHandler(this.gridView1_CustomColumnDisplayText);private DataTable _CategoryList;private DataTable _CategoryList;public DataTable CategoryList publ
30、ic DataTable CategoryList get get if(_CategoryList=null)if(_CategoryList=null)_CategoryList=GetData(select*from _CategoryList=GetData(select*from 产品类别产品类别产品类别产品类别););DataColumn pk=_CategoryList.Columns DataColumn pk=_CategoryList.Columns类别类别类别类别ID;ID;_CategoryList.PrimaryKey=new DataColumn _Category
31、List.PrimaryKey=new DataColumn pk;pk;return _CategoryList;return _CategoryList;private void gridView1_CustomColumnDisplayText(object private void gridView1_CustomColumnDisplayText(object sender,sender,DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEvenDevExpress.XtraGrid.Views.Base.CustomColu
32、mnDisplayTextEventArgs e)tArgs e)if(e.Column.Name=col if(e.Column.Name=col类别类别类别类别ID)ID)e.DisplayText=CategoryList.Rows.Find(e.Value)e.DisplayText=CategoryList.Rows.Find(e.Value)类别名称类别名称类别名称类别名称 as string;as string;广州易麦科技广州易麦科技 http:/http:/ DevExpress.XtraGrid.Views.Base.RowCellAlignmentEventHandler
33、(this.gridView1_RowCellDefaultAlignment);private void gridView1_RowCellDefaultAlignment(object sender,DevExpress.XtraGrid.Views.Base.RowCellAlignmentEventArgs e)e.HorzAlignment=DevExpress.Utils.HorzAlignment.Near;.广州易麦科技广州易麦科技 http:/http:/n n3:界面操作n n3.1根据条件操作行或列风格n n3.2添加RepositoryItem(内嵌元素)n n3.3列
34、汇总n n首先,设置this.gridView1.OptionsView.ShowFooter=true;n nthis.col库存量.SummaryItem.DisplayFormat=总量:0;n n/六种:Sum,Average,Count,Max,Min,Customn ncol单位数量.SummaryItem.SummaryType=DevExpress.Data.SummaryItemType.Sum;广州易麦科技广州易麦科技 http:/http:/四:数据检查、验证n n1.演示Maskn n2.DXValidationProvider的组件使用广州易麦科技广州易麦科技 http:/http:/