DevExpress控件学习
- 格式:docx
- 大小:11.60 KB
- 文档页数:2
基础知识学习系列本地化DevExpress控件版本控制修改记录说明1.文档导读本文档以颜色区分内容的重要性和不同性,阅读本文档时请注意以下事项:1.红色部分表示需要注意的重点内容;(加粗的尤甚)2.蓝色部分表示相应于前版本新增的内容;3.紫色部分表示跟前版本不同的内容;本文档的变动历史都记录在“修改记录说明”一节。
本文通过用到英文单词的地方,也是本人理解不是很深刻的地方,如果有什么好的建议,欢迎指正。
不胜感激!我的email:sendreams@。
2.基础知识2.1.N et Framework知识在Visual Studio .NET里面,本地化资源,比如字符串、图片之类的,都是跟culture(语言文化)有关,这些东西都是存储在单独的文件中并且根据相应的culture设定进行加载,如果要了解怎样加载你自己的本地化资源,那就需要了解资源文件的组织结构关系:在加载资源文件的时候,它选取资源文件的方式,可以说是按照自下而上的方式,写过程序的都知道继承的概念,有父类之类之说,可以说父类就是上层建筑,也就是那些伟大的领导们,而子类就是广大百姓了,呵呵,这个比喻不是很恰当,纯粹娱乐。
Framework里面,父类就对应english,也是唯一的一种没有自身资源文件的,其实也并不是没有,而是存在main assembly里面。
2.在父类之下,可以有多种多样的culture的资源,我们说的culture是指语言文化并不是指windows控制面板中的区域,比如,法国(French简写为“fr”)就是一个culture。
其实english简写成“en”也是一个culture,只不过它比较特别,没办法,谁让现在的it世界是在老外统治着呢。
3.在这些culture之下,又有一些特定区域的culture,这些特定区域的culture,它有两点属性,不仅包含语言文化,还加上区域特色,就好比中国有中国的文化,而福建还有它自身的区域性文化。
Devexpress之barManager控件属性隐藏菜单栏左边的竖线和右边的箭头?
1、隐藏菜单栏上右边的箭头属性设置:OptionsBar=>>AllowQuickCustomization=False
2、隐藏菜单栏左边的竖线属性设置:OptionsBar=>>DrawDragBorder=False
3、⼯具栏和状态栏上右边的箭头隐藏设置,和菜单栏⼀样。
如何使⽤imageList⾥的图⽚?
1、选中barManager设置属性:Images和LargeImages属性都设置成imageList
2、选中要设置的barSubItem:PaintStyle=CaptionGlyph,ImageIndex=选择图⽚
⼀,在bar的属性中有optionbar,可以做⼀些设置.
其中⽐较有⽤的是:
1,去掉最右边的箭头:allowquickcustomization 改为false
2,去掉最左边的竖线:drawdragborder 改为false
⼆,如何使toolbar显⽰图标
⽅法之⼀是:放⼀个imagelist,⾥⾯放⼀些图
在toolbar⾥建⽴⼀个barbuttonitem,然后选中这个item,在属性⾥为其imageindex分配⼀个imagelist⾥的图,三,如何使statusbar⾥的各项可以⾃定义宽度
使⽤statictext,把autosize改为none,然后即可调整width
四,取消右键菜单
barmanager的属性中有AllowShowToolbarsPopup,改为false即可。
DevExpress控件⼿册
https://www.敏感词/article/2018/7/17/28180.html
⼿册是全英⽂的,有chm和pdf两种格式,winform⼿册有两百来兆,内容的确是很详细了,每个控件还有⼊门的详细例⼦,建议下载CHM格式的,然后下载⼀个⽹易有道词典,⿏标选中就可以随时查看翻译。
最重要的是⾥⾯的英⽂不算很难,结合上下⽂的图⽚能知道个⼤概。
完全中⽂的⽂档⼤概是没有的,因为没⼈⼲这累活,仅winform⽂档就⼏百兆,不过有个简易版的中⽂⽂档
基本上其实没什么⽤,不过可以知道它的⼤概属性。
DevExpress软件安装后,有很多例⼦的源代码也⼀起安装了,路径⼀般⼤概在
C:\Users\Public\Documents\DevExpress Demos 18.1\Components\WinForms\CS
除了C#还有VB代码。
devexpress tilecontrol 用法-回复DevExpress TileControl 是一个功能强大且灵活的用户界面控件,可以帮助开发人员创建现代化和可视化丰富的数据面板,使用户界面变得更加吸引人和易于使用。
本文将提供详细的介绍和使用指南,帮助读者了解和掌握DevExpress TileControl 的用法。
第一步:了解TileControl 的基本概念和特性TileControl 是一个面板控件,可以帮助开发人员以磁贴的形式展示和组织不同的信息和操作选项。
每个磁贴可以包含图像、文本、按钮和其他自定义控件,以及相应的交互和动画效果。
TileControl 具有以下特性:1. 多种布局选项:TileControl 提供了多种布局选项,包括水平、垂直、磁贴网格等,开发人员可以根据实际需求选择最适合的布局模式。
2. 自定义样式:TileControl 允许开发人员自定义磁贴的外观和样式,包括颜色、字体、大小等。
这使得用户界面更加个性化和专业化。
3. 数据绑定:TileControl 支持数据绑定,可以通过绑定数据源的方式自动显示和更新磁贴内容。
这样,开发人员可以轻松地将数据与界面进行关联,提高工作效率。
4. 交互和动画效果:TileControl 提供了各种交互和动画效果,如翻转、缩放、滑动等,可以增强用户体验并提高界面的视觉吸引力。
第二步:准备开发环境和控件要使用DevExpress TileControl,首先需要准备开发环境。
确保已经安装了DevExpress 控件套件,并拥有有效的许可证。
在Visual Studio 中创建一个新的WinForms 项目,并将DevExpress TileControl 控件拖放到窗体上。
可以在工具箱中找到TileControl 控件,或者使用NuGet 包管理器安装最新版本的DevExpress 控件。
第三步:配置TileControl 的基本属性在设计时,在属性窗格中配置TileControl 的基本属性。
devexpress richedit 字间距DevExpress RichEdit 字间距在编辑文档时,字间距是一种常见的排版技术,可以用来调整文字之间的水平间距。
DevExpress RichEdit是一款功能强大的文本编辑控件,能够满足各种排版需求,包括字间距的调整。
本文将详细介绍DevExpress RichEdit中字间距的使用方法和技巧。
一、什么是字间距?字间距指的是相邻文字之间的水平间距,用来调整字符之间的距离,以实现更好的排版效果。
可以通过增加或减小字间距来调整文字的紧凑程度,从而使得文本更加易读、美观。
二、DevExpress RichEdit如何设置字间距?在DevExpress RichEdit中,可以通过以下几个步骤来设置字间距:步骤一:打开RichEdit控件并选中要调整字间距的文本。
步骤二:在RichEdit的工具栏中,找到"字间距"按钮,点击它。
步骤三:弹出的字间距设置窗口中,可以通过拖动滑块或手动输入数值来改变字间距大小。
同时,还可以选择不同的单位,如磅、点或百分比等。
步骤四:调整完毕后,点击"确定"按钮,即可完成字间距的设置。
三、字间距的调整技巧除了基本的字间距设置外,DevExpress RichEdit还提供了一些高级的调整技巧,以满足更加复杂的排版需求。
下面介绍几个常用的技巧:1. 段落样式设置:可以通过设置段落样式来实现不同字间距之间的变化。
在RichEdit中,可以创建自定义的段落样式,并在其中设置不同的字间距值。
通过在不同段落间切换样式,即可实现不同字间距的效果。
2. 字符样式设置:与段落样式类似,还可以通过设置字符样式来实现不同字间距的改变。
可以在需要设置字间距的文字上选中,然后在RichEdit的字符样式设置中改变字间距的数值。
3. 动态调整:在某些情况下,可能需要动态调整字间距。
例如,在表格、图形或其他元素中插入文本时,可以根据需要自动调整字间距,以使得文本和其他元素更好地配合。
DevExpress之时间控件dateEdit和timeEdit基本属性DisplayFormat.FormatString-------失去焦点是控件显⽰的格式,timeEdit⽤不上EditMask--------------------------获取焦点时也就是在编辑状态时控件的显⽰格式ShowToday-----------------------控件编辑状态时是否在编辑框中显⽰当天⽇期,dateEdit的控件Text------------------------------获取控件的值SelectedText---------------------获取选中的值,⼀般是⽤在timeEdit,timeEdit编辑状态时可以选中⼩时/分钟/秒显⽰到天dateEdit1.Properties.DisplayFormat.FormatString = "yyyy-MM-dd";dateEdit1.Properties.EditMask = "yyyy-MM-dd";显⽰到⽉dateEdit1.Properties.DisplayFormat.FormatString = "yyyy-MM";dateEdit1.Properties.EditMask = "yyyy-MM";显⽰到年dateEdit1.Properties.DisplayFormat.FormatString = "yyyy";dateEdit1.Properties.EditMask = "yyyy";字符串转DateTimeDateTime.Parse("2016-3-16 12:12:12")字符串根据指定格式转换为DateTimeIFormatProvider ifp = new CultureInfo("zh-CN", true);DateTime.ParseExact("20160316121212", "yyyyMMddHHmmss", ifp);ifp是⼀个区域特定格式字符串信息注意:⼤写MM是指⽉,⼩写mm是指分钟,⼩时⼆⼗四制要⽤⼤写HH,⼗⼆⼩时制⽤⼩写hhDateTime转换指定格式字符串DateTime datetime = DateTime.Now;string timeString = datetime.ToString("yyyyMMddHHmmss");旧版本在显⽰到⽉或者是年的时候有点⿇烦,需要⾃⼰重载dateEdit控件using System;using System.Collections;using System.Collections.Generic;using System.Data;using System.Diagnostics;using DevExpress.XtraEditors;using DevExpress.XtraEditors.Calendar;using DevExpress.XtraEditors.Popup;using DevExpress.XtraEditors.Controls;using DevExpress.XtraEditors.Repository;namespace mon{public class DateEditEx : DateEdit{public DateEditEx(){Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;Properties.DisplayFormat.FormatString = "yyyy-MM";Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;Properties.Mask.EditMask = "yyyy-MM";Properties.ShowToday = false;}protected override PopupBaseForm CreatePopupForm(){if (Properties.VistaDisplayMode == DevExpress.Utils.DefaultBoolean.True)return new CustomVistaPopupDateEditForm(this);return new PopupDateEditForm(this);}private DateResultModeEnum _dateMode = DateResultModeEnum.FirstDayOfMonth;public DateResultModeEnum DateMode{get { return _dateMode; }set { _dateMode = value; }}public enum DateResultModeEnum : int{//虽然是年⽉控件,但⽇期Datetime肯定是2012-01-01这种格式//所以,这个枚举定义了年⽉控件返回本⽉的第⼀天,还是本⽉的最后⼀天作为DateEditEx的值 FirstDayOfMonth = 1,LastDayOfMonth = 2}}public class CustomVistaPopupDateEditForm : VistaPopupDateEditForm{public CustomVistaPopupDateEditForm(DateEdit ownerEdit) : base(ownerEdit) { }protected override DateEditCalendar CreateCalendar(){return new CustomVistaDateEditCalendar(OwnerEdit.Properties, OwnerEdit.EditValue);}public class CustomVistaDateEditCalendar : VistaDateEditCalendar{public CustomVistaDateEditCalendar(RepositoryItemDateEdit item, object editDate) : base(item, editDate) { }protected override void Init(){base.Init();this.View = DateEditCalendarViewType.YearInfo;}public DateEditEx.DateResultModeEnum DateMode{get { return ((DateEditEx)this.Properties.OwnerEdit).DateMode; }}protected override void OnItemClick(DevExpress.XtraEditors.Calendar.CalendarHitInfo hitInfo){DayNumberCellInfo cell = hitInfo.HitObject as DayNumberCellInfo;if (View == DateEditCalendarViewType.YearInfo){DateTime dt = new DateTime(DateTime.Year, cell.Date.Month, 1, 0, 0, 0);if (DateMode == DateEditEx.DateResultModeEnum.FirstDayOfMonth){OnDateTimeCommit(dt, false);}else{DateTime tempDate = dt.AddMonths(1).AddDays(-1);tempDate = new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, 23, 59, 59);OnDateTimeCommit(tempDate, false);}}elsebase.OnItemClick(hitInfo);}}}using System;using System.Collections.Generic;using System.Linq;using System.Text;using DevExpress.XtraEditors;using DevExpress.XtraEditors.Calendar;using DevExpress.XtraEditors.Popup;using DevExpress.XtraEditors.Controls;using DevExpress.XtraEditors.Repository;namespace mon{public DateEditEx(){Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;Properties.DisplayFormat.FormatString = "yyyy";Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;Properties.Mask.EditMask = "yyyy";Properties.ShowToday = false;}protected override PopupBaseForm CreatePopupForm(){if (Properties.VistaDisplayMode == DevExpress.Utils.DefaultBoolean.True)return new CustomVistaPopupDateEditForm(this);return new PopupDateEditForm(this);}private DateResultModeEnum _dateMode = DateResultModeEnum.FirstDayOfMonth;public DateResultModeEnum DateMode{get { return _dateMode; }set { _dateMode = value; }}public enum DateResultModeEnum : int{//虽然是年⽉控件,但⽇期Datetime肯定是2012-01-01这种格式//所以,这个枚举定义了年⽉控件返回本⽉的第⼀天,还是本⽉的最后⼀天作为DateEditEx的值FirstDayOfMonth = 1,LastDayOfMonth = 2}}public class CustomVistaPopupDateEditForm : VistaPopupDateEditForm{public CustomVistaPopupDateEditForm(DateEdit ownerEdit) : base(ownerEdit) { }protected override DateEditCalendar CreateCalendar(){return new CustomVistaDateEditCalendar(OwnerEdit.Properties, OwnerEdit.EditValue);}}public class CustomVistaDateEditCalendar : VistaDateEditCalendar{public CustomVistaDateEditCalendar(RepositoryItemDateEdit item, object editDate) : base(item, editDate) { } protected override void Init(){base.Init();this.View = DateEditCalendarViewType.YearsInfo;}get{return ((DateEditEx)this.Properties.OwnerEdit).DateMode;}}protected override void OnItemClick(DevExpress.XtraEditors.Calendar.CalendarHitInfo hitInfo) {DayNumberCellInfo cell = hitInfo.HitObject as DayNumberCellInfo;//DateTime dt = new DateTime(DateTime.Year, 1, 1, 0, 0, 0);OnDateTimeCommit(cell.Date, false);//base.OnItemClick(hitInfo);}}}。
目录1. DevExpress控件组中的GridControl控件不能使横向滚动条有效。
(2)2. 使单元格不可编辑。
(2)3. 没有下拉滚动条事件怎么办? (2)4. 获取选定行,指定列单元格的内容 (2)5. 去除"Drag a Column Header Here To Group by that Column" (3)6. 在gridcontrol中添加checkbox复选框 (3)7. 单元格合并问题 (4)8. gridView 奇行与偶行交替变色 (4)9. girdView在第一列显示行号 (4)10. 选中某列进行排序时,如何让该列高亮显示 (5)11. XtraGrid冻结列 (5)(由于开始使用DevExpress控件了,所以要点滴的记录一下)1.DevExpress控件组中的GridControl控件不能使横向滚动条有效。
现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容。
解决:gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了。
2.使单元格不可编辑。
gridcontrol -->gridview -->OptionsBehavior -->Editable=false3.没有下拉滚动条事件怎么办?现象:因为需要加载大数据量数据,所以不能一次把所有数据读入datatable进行绑定,所以决定在用户进一步浏览数据时进行数据的实时加载工作,就是每当用户拉动滚动条时,多加载一些数据进入datatable.没有找到合适的滚动条事件,于是用这个事件代替了,非常合适我的需求.TopRowChanged事件.4.获取选定行,指定列单元格的内容private string GetSelectOID(){int[] pRows = this.gridView1.GetSelectedRows();if (pRows.GetLength(0) > 0)return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString ();elsereturn null;}//mOIDFiledName为要获取列的列名5.去除"Drag a Column Header Here To Group by that Column"属性Gridview->Option View->Show Group Panel=false,就好了6.在gridcontrol中添加checkbox复选框gridview->run designer->columns->选择要变成复选框的那一列->column edit->new(在这里可以选择很多类型)加载checkbox数据时,费了一点时间,checkbox的复选框怎么点击,一失去焦点是,选择的操作就无效了,问题就出在datatable的绑定上了,一定要绑定一个布尔的类型.代码是这样滴!private void FrmCreateLegend_Load(object sender, EventArgs e){IFeatureLayer pFeatureLayer;IDataset pDataset;string pName;DataTable pDatatable = new DataTable();pDatatable.Columns.Add("图层名称", System.Type.GetType("System.String"));pDatatable.Columns.Add("选择", System.Type.GetType("System.Boolean"));DataRow pDataRow;object[] rowArray = new object[2];for (int i = 0; i < mFeatureLayers.Count; i++){pDataRow = pDatatable.NewRow();pFeatureLayer = mFeatureLayers[i] as IFeatureLayer;rowArray[0] = ;rowArray[1] = false;pDataRow.ItemArray = rowArray;pDatatable.Rows.Add(pDataRow);}this.gridMark.DataSource = pDatatable;this.gridMark.Refresh();}注意:创建的datatable的列名一定要和gridview中的列的fieldname属性值是一个名字,不然,你会发现添加了和你绑定的datatalbe一样多的行,可是行里面却没有内容的.第三方控件GridControl 使用技巧自开始接触此第三方控件至今三个月,经常使用,三个月中碰到一些问题,一一解决,如是现在整理使用的内容:7.单元格合并问题(1)窗体加载时ceMerging.Checked = gridView1.OptionsView.AllowCellMerge;(2)添加事件private void ceMerging_CheckedChanged(object sender, EventArgs e){gridView1.OptionsView.AllowCellMerge = ceMerging.Checked;}8.gridView 奇行与偶行交替变色this.gridView1.OptionsView.EnableAppearanceEvenRow = true;this.gridView1.OptionsView.EnableAppearanceOddRow = true;this.gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));eBackColor = true;this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));eBackColor = true;9.girdView在第一列显示行号//调整第一列的宽度this.gridView1.IndicatorWidth = 40;//添加监听事件this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.gridView1_Custom DrawRowIndicator);//事件private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle >= 0){.DisplayText =Convert.ToString(Convert.ToInt32(e.RowHandle.ToString())+1);}}10.选中某列进行排序时,如何让该列高亮显示在gridView1的"EndSorting"事件中加入以下代码private void gridView1_EndSorting(object sender, EventArgs e){Color clr = gridView1.Appearance.Row.BackColor;foreach (DevExpress.XtraGrid.Columns.GridColumn dc in gridView1.Columns){if (dc.VisibleIndex == gridView1.SortedColumns[0].VisibleIndex){dc.AppearanceCell.BackColor = Color.Red;}else{dc.AppearanceCell.BackColor = clr;}}}11.XtraGrid冻结列XtraGrid的GridView中的Columns里面有Fixed属性Devpress.XtraGrid.GridControl1,增加新行用InitNewRow事件,给新行某字段赋值。
关于我想变成什么的作文400字(精选4篇)关于我想变成什么的作文400字(精选4篇)在学习、工作、生活中,大家总少不了接触作文吧,作文根据写作时限的不同可以分为限时作文和非限时作文。
怎么写作文才能防止踩雷呢?下面是提供的关于我想变成什么的作文400字(精选4篇),,希望能够帮助到大家。
我是多么想变成一只漂亮、可爱的小鸟呀!我变成小鸟后,可以飞过高山,飞过山谷,飞过海洋,飞向那美丽的小兴安岭,与那里的鸟儿们一起交朋友,并且搭一个窝住下来。
春天小兴安岭溪水很多,我可以与朋友们一起飞到草丛里,捉虫子吃。
夏天,我与大家飞进窝里,在绿阴阍下乘凉,与朋友一起在窝里玩耍、休息。
秋天,我跟同伴们飞到野葡萄下面。
大家让一只鸟儿啄破野葡萄的皮,让汁水流下来,我与同伴们连忙从草坪找来一个很干净的碗装汁液。
有时候,果肉也可以掉下来。
鹦鹉又带着大家把棒子的外壳剥开,取出果肉,咬碎了分给大家,让大家都有过冬的粮食,野葡萄的汁液也分给大家,让大家有水喝。
我还跟同伴一起去捡小树枝,搭一个温暖的窝,冬天到时不会被冻僵,雨来了不会被淋到。
冬天,我们一起躲在舒适的家里,我与朋友黄鹂在同一间窝里睡觉,休息,把小树枝上的叶子拔开,编织成被子,盖好,欣赏外面的雪景,我又把一些树枝搭在窝上,当房顶,翻开一个地方开了两个小洞,欣赏雪花跳舞。
我真想变成一个小鸟,一只自由自在翱翔蓝天的'小鸟。
我爱小河那美丽、宁静;我爱小河那大自然的透明色彩……假设我会变,我想变成一条小河。
在美丽的春天,我想变成一条小河。
时不时的拍打小草、野花;去拜访河底的鹅卵石;帮人们浇灌农田,让这里充满绿色;跟小鱼聊天,所以一路上我有许多千奇百怪的朋友,是多么快乐。
在炎热的夏天,我想变成一条小河。
带给人们凉爽,给人们打打背、挠挠脚,让孩子有一个既快乐有凉爽的小天地;我还可以给人们发电,让空调和电扇风力更强;我再次给农田浇水,以防它们干旱。
在丰收的秋天,我想变成一条小河。
WinForm-DevExpress控件-TreeList-树形框菜单的使⽤环境声明:使⽤控件:DevExpress16.2开发语⾔:C#开发⼯具:VS2017开发框架:WinForm#通过绑定数据List<Data>⽅式来达到树形框显⽰1.绑定数据格式public class Data{public int ID { get; set; } //数据ID,主键public string Name { get; set; } //数据名称public int GroupId { get; set; } //分组ID,当前位于树形菜单第⼏级的意思public int ParentID { get; set; } //⽗标签ID,⽗标签的数据ID}2.添加绑定列,设置绑定数据名称TreeList >> Run Designer >> Add Column,设置其绑定字段为数据名称:“Name”3.设置主键绑定数据名称TreeList >> KeyFieldName=“Id”4.设置⽗标签绑定数据名称TreeList >> ParentFieldName=“Parent”#树形框不可编辑treeList.OptionsBehavior.Editable = true;#添加节点(绑定对象模式)Data.Add(new DTO.BookList() { id = 主键, GroupId = 0, Name = "新增节点", ParentID = 0 });this.treeList.DataSource = Data;this.treeList.RefreshDataSource();#使添加的选中节点进⼊编辑状态foreach (TreeListNode node in treeList.Nodes) {if ((int)node.GetValue("id")==主键) {treeList.FocusedNode = node; //设置选中焦点到节点treeList.OptionsBehavior.Editable = true;//开启控件编辑状态treeList.ShowEditor();//进⼊编辑模式break;}}#离开编辑触发事件treeList_HiddenEditorprivate void treeList_HiddenEditor(object sender, EventArgs e){Console.WriteLine("离开编辑当前节点,可以在这⾥做⼀些后续动作");}PS:未完待续。
文章标题:深度探讨Devexpress VCL的应用与示例一、引言Devexpress VCL是一个功能强大而且灵活的可视化控件库,它为开发人员提供了丰富的界面设计和功能实现工具。
在本文中,我们将重点探讨Devexpress VCL的应用与示例,并通过深度分析和实例展示,帮助读者更好地理解和运用这一技术。
二、Devexpress VCL的基本概念1. Devexpress VCL是什么?Devexpress VCL是一个面向Windows评台的控件库,它提供了丰富多样的界面控件,包括但不限于按钮、列表框、网格、编辑框等,同时还提供了一系列的数据处理、图表绘制、文档处理等功能模块。
开发人员可以利用这些控件和功能模块,快速、高效地构建出精美而且功能丰富的Windows应用程序。
2. Devexpress VCL的特点- 可视化设计器:Devexpress VCL提供了强大的可视化设计器工具,开发人员可以通过拖拽控件、设置属性等方式,轻松设计界面布局。
- 丰富的控件库:Devexpress VCL包含了大量常用的界面控件,这些控件不仅外观漂亮,而且功能强大。
- 功能模块完善:除了界面控件外,Devexpress VCL还提供了许多功能模块,如数据处理、报表生成、文件操作等,为开发人员提供了全方位的工具支持。
三、Devexpress VCL的实际应用1. 基本示例:按钮控件我们通过一个简单的示例来展示Devexpress VCL的应用。
我们创建一个按钮控件,并设置其文字内容为“点击我”,然后在点击按钮时弹出一个消息框,显示“Hello, Devexpress VCL!”。
这个示例展示了如何在Devexpress VCL中创建界面控件,并设置基本的交互逻辑。
2. 进阶示例:图表绘制接下来,我们介绍一个进阶的示例,使用Devexpress VCL中的图表控件来展示数据。
我们准备了一组柱状图数据,并利用Devexpress VCL的图表控件,将这些数据可视化为一个柱状图。
DevExpress控件汉化代码和使⽤⽅法DevExpress 第三⽅控件汉化的全部代码和使⽤⽅法DevExpress.XtraEditors.Controls 此控件包中包含的控件最多,包括⽂本框,下拉列表,按钮,等等DevExpress.XtraGrid ⽹格DevExpress.XtraBars 菜单栏和⼯具栏DevExpress.XtraNavBar 导航条DevExpress.XtraPrinting 报表打印相关DevExpress.XtraReports 报表DevExpress.XtraTreeList 树DevExpress.XtraVerticalGrid使⽤⽅法:1.先将该类⽣成的Dll导⼊⼯程中,也可以不⽣成dll,把该类放到项⽬中就⾏了。
2.在你的From_Load()或者program.cs中实例化该类即可,具体代码如下:new ChineseLanguage.Chinese();3.据我测试,好像适合很多版本,如果只⽤到其中⼀部分的控件,可以注释掉⼀些。
using System;using DevExpress.XtraEditors.Controls;using DevExpress.XtraGrid.Localization;using DevExpress.XtraBars.Customization;using DevExpress.XtraBars.Localization;using DevExpress.XtraNavBar;using DevExpress.XtraPrinting.Localization;using DevExpress.XtraReports.Localization;using DevExpress.XtraTreeList.Localization;using DevExpress.XtraVerticalGrid.Localization;namespace ChineseLanguage{public class Chinese{public Chinese(){Localizer.Active = new XtraEditors_CN();GridLocalizer.Active = new XtraGrid_CN();BarLocalizer.Active = new XtraBar_CN();BarLocalizer.Active.Customization = new XtraBarsCustomizationLocalization_CN();NavBarLocalizer.Active = new XtraNavBar_CN();PreviewLocalizer.Active = new XtraPrinting_CN();ReportLocalizer.Active = new XtraReports_CN();TreeListLocalizer.Active = new XtraTreeList_CN();VGridLocalizer.Active = new XtraVerticalGrid_CN();}}public class XtraEditors_CN :Localizer{public XtraEditors_CN(){//// TODO: 在此处添加构造函数逻辑//}public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(StringId id){switch(id){case StringId.TextEditMenuCopy:return"复制(&C)";case StringId.TextEditMenuCut:return"剪切(&T)";case StringId.TextEditMenuDelete:return"删除(&D)";case StringId.TextEditMenuPaste:return"粘贴(&P)";case StringId.TextEditMenuSelectAll:return"全选(&A)";case StringId.TextEditMenuUndo:return"撤消(&U)";case StringId.UnknownPictureFormat:return"未知图⽚格式";case StringId.DateEditToday:return"今天";case StringId.DateEditClear:return"清空";case StringId.DataEmpty:return"⽆图像";case StringId.ColorTabWeb:return"⽹页";case StringId.ColorTabSystem:return"系统";case StringId.ColorTabCustom:return"⾃定义";case StringId.CheckUnchecked:return"未选择";case StringId.CaptionError:return"标题错误";case StringId.Cancel:return"取消";case StringId.CalcError:return"计算错误";case StringId.CalcButtonBack:return base.GetLocalizedString(id);case StringId.CalcButtonC:return base.GetLocalizedString(id);case StringId.CalcButtonCE:return base.GetLocalizedString(id);;case StringId.CalcButtonMC:return base.GetLocalizedString(id);case StringId.CalcButtonMR:return base.GetLocalizedString(id);case StringId.CalcButtonMS:return base.GetLocalizedString(id);case StringId.CalcButtonMx:return base.GetLocalizedString(id);case StringId.CalcButtonSqrt:return base.GetLocalizedString(id);case StringId.OK:return"确定";case StringId.PictureEditMenuCopy:return"复制(&C)";case StringId.PictureEditMenuCut:return"剪切(&T)";case StringId.PictureEditMenuDelete:return"删除(&D)";case StringId.PictureEditMenuLoad:return"加载(&L)";case StringId.PictureEditMenuPaste:return"粘贴(&P)";case StringId.PictureEditMenuSave:return"保存(&S)";case StringId.PictureEditOpenFileError:return"错误图⽚格式";case StringId.PictureEditOpenFileErrorCaption:return"打开错误";case StringId.PictureEditOpenFileFilter:return"位图⽂件(*.bmp)|*.bmp|GIF动画 (*.gif)|*.gif|JPEG(*.jpg;*.jpeg)|*.jpg;*.jpeg|ICO(*.ico)|*.ico|所有图⽚⽂件|*.bmp;*.gif;*.jpeg;*.jpg;*.ico|所有⽂件(*.*)|*.*";case StringId.PictureEditOpenFileTitle:return"打开";case StringId.PictureEditSaveFileFilter:return"位图⽂件(*.bmp)|*.bmp|GIF动画(*.gif)|*.gif|JPEG(*.jpg)|*.jpg";case StringId.PictureEditSaveFileTitle:return"保存为";case StringId.TabHeaderButtonClose:return"关闭";case StringId.TabHeaderButtonNext:return"下⼀页";case StringId.TabHeaderButtonPrev:return"上⼀页";case StringId.XtraMessageBoxAbortButtonText:return"中断(&A)";case StringId.XtraMessageBoxCancelButtonText:return"取消(&C)";case StringId.XtraMessageBoxIgnoreButtonText:return"忽略(&I)";case StringId.XtraMessageBoxNoButtonText:return"否(&N)";case StringId.XtraMessageBoxOkButtonText:return"确定(&O)";case StringId.XtraMessageBoxRetryButtonText:return"重试(&R)";case StringId.XtraMessageBoxYesButtonText:return"是(&Y)";case StringId.ImagePopupEmpty:return"(空)";case StringId.ImagePopupPicture:return"(图⽚)";case StringId.InvalidValueText:return"⽆效的值";case StringId.LookUpEditValueIsNull:return"[⽆数据]";case StringId.LookUpInvalidEditValueType:return"⽆效的数据类型";case StringId.MaskBoxValidateError:return"输⼊数值不完整. 是否须要修改? 是 - 回到编辑模式以修改数值. 否 - 保持原来数值. 取消 - 回复原来数值. ";case StringId.NavigatorAppendButtonHint:return"添加";case StringId.NavigatorCancelEditButtonHint:return"取消编辑";case StringId.NavigatorEditButtonHint:return"编辑";case StringId.NavigatorEndEditButtonHint:return"结束编辑";case StringId.NavigatorFirstButtonHint:return"第⼀条";case StringId.NavigatorLastButtonHint:return"最后⼀条";case StringId.NavigatorNextButtonHint:return"下⼀条";case StringId.NavigatorNextPageButtonHint:return"下⼀页";case StringId.NavigatorPreviousButtonHint:return"上⼀条";case StringId.NavigatorPreviousPageButtonHint:return"上⼀页";case StringId.NavigatorRemoveButtonHint:return"删除";case StringId.NavigatorTextStringFormat:return"记录{0}/{1}";case StringId.None:return"";case StringId.NotValidArrayLength:return"⽆效的数组长度.";}return base.GetLocalizedString(id);}}public class XtraGrid_CN :GridLocalizer{public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(GridStringId id){switch(id){case GridStringId.CardViewNewCard:return"新卡⽚";case GridStringId.CardViewQuickCustomizationButton:return"⾃定义格式";case GridStringId.CardViewQuickCustomizationButtonFilter:return"筛选";case GridStringId.CardViewQuickCustomizationButtonSort:return"排序";case GridStringId.ColumnViewExceptionMessage:return"是否确定修改?";case GridStringId.CustomFilterDialog2FieldCheck:return"字段";case GridStringId.CustomFilterDialogCancelButton:return"取消";case GridStringId.CustomFilterDialogCaption:return"条件为:";case GridStringId.CustomFilterDialogConditionBlanks:return"空值";case GridStringId.CustomFilterDialogConditionEQU:return"等于=";case GridStringId.CustomFilterDialogConditionGT:return"⼤于>";case GridStringId.CustomFilterDialogConditionGTE:return"⼤于或等于>=";case GridStringId.CustomFilterDialogConditionLT:return"⼩于<";case GridStringId.CustomFilterDialogConditionLTE:return"⼩于或等于>=";case GridStringId.CustomFilterDialogConditionNEQ:return"不等于<>";case GridStringId.CustomFilterDialogConditionNonBlanks:return"⾮空值";case GridStringId.CustomFilterDialogConditionNotLike:return"不包含";case GridStringId.CustomFilterDialogFormCaption:return"清除筛选条件(&L)";case GridStringId.CustomFilterDialogOkButton:return"确定(&O)";case GridStringId.CustomFilterDialogRadioAnd:return"和(&A)";case GridStringId.CustomFilterDialogRadioOr:return"或者(&O)";case GridStringId.CustomizationBands:return"分区";case GridStringId.CustomizationCaption:return"⾃定义显⽰字段";case GridStringId.CustomizationColumns:return"列";case GridStringId.FileIsNotFoundError:return"⽂件{0}没找到!";case GridStringId.GridGroupPanelText:return"拖曳⼀列页眉在此进⾏排序";case GridStringId.GridNewRowText:return"单击这⾥新增⼀⾏";case GridStringId.GridOutlookIntervals:return"⼀个⽉以上;上个⽉;三周前;两周前;上周;;;;;;;;昨天;今天;明天; ;;;;;;;下周;两周后;三周后;下个⽉;⼀个⽉之后;";case GridStringId.MenuColumnBestFit:return"⾃动调整字段宽度";case GridStringId.MenuColumnBestFitAllColumns:return"⾃动调整所有字段宽度";case GridStringId.MenuColumnClearFilter:return"清除筛选条件";case GridStringId.MenuColumnColumnCustomization:return"显⽰/隐藏字段";case GridStringId.MenuColumnFilter:return"筛选";case GridStringId.MenuColumnGroup:return"按此列分组";case GridStringId.MenuColumnGroupBox:return"分组区";case GridStringId.MenuColumnSortAscending:return"升序排序";case GridStringId.MenuColumnSortDescending:return"降序排序";case GridStringId.MenuColumnUnGroup:return"取消分组";case GridStringId.MenuFooterAverage:return"平均";case GridStringId.MenuFooterAverageFormat:return"平均={0:#.##}";case GridStringId.MenuFooterCount:return"计数";case GridStringId.MenuFooterCountFormat:return"{0}";case GridStringId.MenuFooterMax:return"最⼤值";case GridStringId.MenuFooterMaxFormat:return"最⼤值={0}";case GridStringId.MenuFooterMin:return"最⼩";case GridStringId.MenuFooterMinFormat:return"最⼩值={0}";case GridStringId.MenuFooterNone:return"没有";case GridStringId.MenuFooterSum:return"合计";case GridStringId.MenuFooterSumFormat:return"求和={0:#.##}";case GridStringId.MenuGroupPanelClearGrouping:return"取消所有分组";case GridStringId.MenuGroupPanelFullCollapse:return"收缩全部分组";case GridStringId.MenuGroupPanelFullExpand:return"展开全部分组";case GridStringId.PopupFilterAll:return"(所有)";case GridStringId.PopupFilterBlanks:return"(空值)";case GridStringId.PopupFilterCustom:return"(⾃定义)";case GridStringId.PopupFilterNonBlanks:return"(⾮空值)";case GridStringId.PrintDesignerBandedView:return"打印设置(区域模式)";case GridStringId.PrintDesignerBandHeader:return"区标题";case GridStringId.PrintDesignerCardView:return"打印设置(卡⽚模式)";case GridStringId.PrintDesignerDescription:return"为当前视图设置不同的打印选项.";case GridStringId.PrintDesignerGridView:return"打印设置(表格模式)";case GridStringId.WindowErrorCaption:return"错误";}return base.GetLocalizedString(id);}}public class XtraBar_CN :BarLocalizer{public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(BarString id){switch(id){case BarString.AddOrRemove:return"新增或删除按钮(&A)";case BarString.CustomizeButton:return"⾃定义(&C)";case BarString.CustomizeWindowCaption:return"⾃定义";case BarString.MenuAnimationFade:return"减弱";case BarString.MenuAnimationNone:return"空";case BarString.MenuAnimationRandom:return"任意";case BarString.MenuAnimationSlide:return"滑动";case BarString.MenuAnimationSystem:return"(系统默认值)";case BarString.MenuAnimationUnfold:return"展开";case BarString.NewToolbarCaption:return"新建⼯具栏";case BarString.None:return"";case BarString.RenameToolbarCaption:return"重新命名";case BarString.ResetBar:return"是否确实要重置对 '{0}' ⼯具栏所作的修改?";case BarString.ResetBarCaption:return"⾃定义";case BarString.ResetButton:return"重设⼯具栏(&R)";case BarString.ToolBarMenu:return"重设(&R)$删除(&D)$!命名(&N)$!标准(&L)$总使⽤⽂字(&T)$在菜单中只⽤⽂字(&O)$图像与⽂本(&A)$!开始⼀组(&G)$常⽤的(&M)";case BarString.ToolbarNameCaption:return"⼯具栏名称(&T):";}return base.GetLocalizedString(id);}}public class XtraBarsCustomizationLocalization_CN : CustomizationControl{private ponentModel.Container components = null;public XtraBarsCustomizationLocalization_CN(){// This call is required by the Windows.Forms Form Designer.InitializeComponent();// TODO: Add any initialization after the InitForm call}protected override void Dispose(bool disposing){if (disposing){if (components != null){components.Dispose();}}base.Dispose(disposing);}#region Component Designer generated code///<summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor.///</summary>private void InitializeComponent(){this.tpOptions.SuspendLayout();this.tpCommands.SuspendLayout();this.tpToolbars.SuspendLayout();((ponentModel.ISupportInitialize)(this.toolBarsList)).BeginInit();((ponentModel.ISupportInitialize)(this.lbCommands)).BeginInit();((ponentModel.ISupportInitialize)(this.lbCategories)).BeginInit();((ponentModel.ISupportInitialize)(this.cbOptionsShowFullMenus.Properties)).BeginInit();((ponentModel.ISupportInitialize)(this.cbOptions_showFullMenusAfterDelay.Properties)).BeginInit(); ((ponentModel.ISupportInitialize)(this.cbOptions_showTips.Properties)).BeginInit();((ponentModel.ISupportInitialize)(this.cbOptions_ShowShortcutInTips.Properties)).BeginInit();((ponentModel.ISupportInitialize)(this.tabControl)).BeginInit();this.tabControl.SuspendLayout();((ponentModel.ISupportInitialize)(this.tbNBDlgName.Properties)).BeginInit();this.pnlNBDlg.SuspendLayout();((ponentModel.ISupportInitialize)(this.cbOptions_largeIcons.Properties)).BeginInit();((ponentModel.ISupportInitialize)(this.cbOptions_MenuAnimation.Properties)).BeginInit();this.SuspendLayout();this.btClose.Text = "关闭";this.btResetBar.Text = "重新设置(&R)";this.btRenameBar.Text = "重命名(&E)";this.btNewBar.Text = "新建(&N)";this.btDeleteBar.Text = "删除(&D)";this.btOptions_Reset.Text = "重置惯⽤数据(&R)";this.btNBDlgCancel.Text = "取消";this.btNBDlgOk.Text = "确定";this.tpOptions.Size = new System.Drawing.Size(354, 246);this.tpOptions.Text = "选项(&O)";this.tpCommands.Text = "命令(&C)";this.tpToolbars.Text = "⼯具栏(&B)";this.cbOptionsShowFullMenus.Properties.Caption = "始终显⽰整个菜单(&N)";this.cbOptions_showFullMenusAfterDelay.Properties.Caption = "⿏标指针短暂停留后显⽰完整菜单(&U)";this.cbOptions_largeIcons.Properties.Caption = "⼤图标(&L)";this.cbOptions_showTips.Properties.Caption = "显⽰关于⼯具栏屏幕提⽰(&T)";this.cbOptions_ShowShortcutInTips.Properties.Caption = "在屏幕提⽰中显⽰快捷键(&H)";this.lbDescCaption.Text = "详细说明";this.lbOptions_Other.Text = "其它";this.lbOptions_PCaption.Text = "个性化菜单和⼯具栏";this.lbCategoriesCaption.Text = "类别:";this.lbCommandsCaption.Text = "命令:";this.lbToolbarCaption.Text = "⼯具栏:";this.lbOptions_MenuAnimation.Text = "菜单动画设置(&M):";this.lbNBDlgCaption.Text = "⼯具栏名称(&T)";this.lbCommands.Appearance.BackColor = System.Drawing.SystemColors.Window;eBackColor = true; = "XtraBarsCustomizationLocalization_CN";this.tpOptions.ResumeLayout(false);this.tpCommands.ResumeLayout(false);((ponentModel.ISupportInitialize)(this.toolBarsList)).EndInit();((ponentModel.ISupportInitialize)(this.lbCommands)).EndInit();((ponentModel.ISupportInitialize)(this.lbCategories)).EndInit();((ponentModel.ISupportInitialize)(this.cbOptionsShowFullMenus.Properties)).EndInit();((ponentModel.ISupportInitialize)(this.cbOptions_showFullMenusAfterDelay.Properties)).EndInit(); ((ponentModel.ISupportInitialize)(this.cbOptions_showTips.Properties)).EndInit();((ponentModel.ISupportInitialize)(this.cbOptions_ShowShortcutInTips.Properties)).EndInit();((ponentModel.ISupportInitialize)(this.tabControl)).EndInit();this.tabControl.ResumeLayout(false);((ponentModel.ISupportInitialize)(this.tbNBDlgName.Properties)).EndInit();this.pnlNBDlg.ResumeLayout(false);((ponentModel.ISupportInitialize)(this.cbOptions_largeIcons.Properties)).EndInit();((ponentModel.ISupportInitialize)(this.cbOptions_MenuAnimation.Properties)).EndInit();this.ResumeLayout(false);}#endregion}public class XtraNavBar_CN :NavBarLocalizer{public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(NavBarStringId id){switch(id){case NavBarStringId.NavPaneChevronHint:return"配置按钮";case NavBarStringId.NavPaneMenuAddRemoveButtons:return"添加或删除按钮(&A)";case NavBarStringId.NavPaneMenuShowFewerButtons:return"显⽰较少的按钮(&F)";case NavBarStringId.NavPaneMenuShowMoreButtons:return"显⽰更多的按钮(&M)";}return base.GetLocalizedString(id);}}public class XtraPrinting_CN :PreviewLocalizer{public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(PreviewStringId id){switch(id){case PreviewStringId.Button_Apply:return"应⽤";case PreviewStringId.Button_Cancel:return"取消";case PreviewStringId.Button_Help:return"帮助";case PreviewStringId.Button_Ok:return"确定";case PreviewStringId.EMail_From:return"From";case PreviewStringId.Margin_BottomMargin:return"下边界";case PreviewStringId.Margin_Inch:return"英⼨";case PreviewStringId.Margin_LeftMargin:return"左边界";case PreviewStringId.Margin_Millimeter:return"毫⽶";case PreviewStringId.Margin_RightMargin:return"右边界";case PreviewStringId.Margin_TopMargin:return"上边界";case PreviewStringId.MenuItem_BackgrColor:return"颜⾊(&C)";case PreviewStringId.MenuItem_Background:return"背景(&B)";case PreviewStringId.MenuItem_CsvDocument:return"CSV⽂件";case PreviewStringId.MenuItem_Exit:return"退出(&X)";case PreviewStringId.MenuItem_Export:return"导出(&E)";case PreviewStringId.MenuItem_File: return"⽂件(&F)";case PreviewStringId.MenuItem_GraphicDocument:return"图⽚⽂件";case PreviewStringId.MenuItem_HtmDocument:return"HTML⽂件";case PreviewStringId.MenuItem_MhtDocument:return"MHT⽂件";case PreviewStringId.MenuItem_PageSetup:return"页⾯设置(&U)";case PreviewStringId.MenuItem_PdfDocument:return"PDF⽂件";case PreviewStringId.MenuItem_Print:return"打印(&P)";case PreviewStringId.MenuItem_PrintDirect:return"直接打印(&R)";case PreviewStringId.MenuItem_RtfDocument:return"RTF⽂件";case PreviewStringId.MenuItem_Send:return"发送(&D)";case PreviewStringId.MenuItem_TxtDocument:return"TXT⽂件";case PreviewStringId.MenuItem_View:return"视图(&V)";case PreviewStringId.MenuItem_ViewStatusbar:return"状态栏(&S)";case PreviewStringId.MenuItem_Watermark:return"⽔印(&W)";case PreviewStringId.MenuItem_XlsDocument:return"XLS⽂件";case PreviewStringId.MPForm_Lbl_Pages:return"页";case PreviewStringId.Msg_CreatingDocument:return"正在⽣成⽂件";case PreviewStringId.Msg_CustomDrawWarning:return"警告!";case PreviewStringId.Msg_EmptyDocument:return"此⽂件没有页⾯.";case PreviewStringId.Msg_FontInvalidNumber:return"字体⼤⼩不能为0或负数";case PreviewStringId.Msg_IncorrectPageRange:return"设置的页边界不正确";case PreviewStringId.Msg_NeedPrinter:return"没有安装打印机.";case PreviewStringId.Msg_NotSupportedFont:return"这种字体不被⽀持";case PreviewStringId.Msg_PageMarginsWarning:return"⼀个或以上的边界超出了打印范围.是否继续?"; case PreviewStringId.Msg_WrongPageSettings:return"打印机不⽀持所选的纸张⼤⼩. 是否继续打印?"; case PreviewStringId.Msg_WrongPrinter:return"⽆效的打印机名称.请检查打印机的设置是否正确."; case PreviewStringId.PageInfo_PageDate:return"[Date Printed]";case PreviewStringId.PageInfo_PageNumber:return"[Page #]";case PreviewStringId.PageInfo_PageNumberOfTotal:return"[Page # of Pages #]";case PreviewStringId.PageInfo_PageTime:return"[Time Printed]";case PreviewStringId.PageInfo_PageUserName:return"[User Name]";case PreviewStringId.PreviewForm_Caption:return"预览";case PreviewStringId.SaveDlg_FilterBmp:return"BMP Bitmap Format";case PreviewStringId.SaveDlg_FilterCsv:return"CSV⽂件";case PreviewStringId.SaveDlg_FilterGif:return"GIF Graphics Interchange Format";case PreviewStringId.SaveDlg_FilterHtm:return"HTML⽂件";case PreviewStringId.SaveDlg_FilterJpeg:return"JPEG File Interchange Format";case PreviewStringId.SaveDlg_FilterMht:return"MHT⽂件";case PreviewStringId.SaveDlg_FilterPdf:return"PDF⽂件";case PreviewStringId.SaveDlg_FilterPng:return"PNG Portable Network Graphics Format";case PreviewStringId.SaveDlg_FilterRtf:return"RTF⽂件";case PreviewStringId.SaveDlg_FilterTiff:return"TIFF Tag Image File Format";case PreviewStringId.SaveDlg_FilterTxt:return"TXT⽂件";case PreviewStringId.SaveDlg_FilterWmf:return"WMF Windows Metafile";case PreviewStringId.SaveDlg_FilterXls:return"Excel⽂件";case PreviewStringId.SaveDlg_Title:return"另存为";case PreviewStringId.SB_CurrentPageNo:return"⽬前页码:";case PreviewStringId.SB_PageInfo:return"{0}/{1}";case PreviewStringId.SB_PageNone:return"⽆";case PreviewStringId.SB_TotalPageNo:return"总页码:";case PreviewStringId.SB_ZoomFactor:return"缩放系数:";case PreviewStringId.ScrollingInfo_Page:return"页";case PreviewStringId.TB_TTip_Backgr:return"背景⾊";case PreviewStringId.TB_TTip_Close:return"退出";case PreviewStringId.TB_TTip_Customize:return"⾃定义";case PreviewStringId.TB_TTip_EditPageHF:return"页眉页脚";case PreviewStringId.TB_TTip_Export:return"导出⽂件";case PreviewStringId.TB_TTip_FirstPage:return"⾸页";case PreviewStringId.TB_TTip_HandTool:return"⼿掌⼯具";case PreviewStringId.TB_TTip_LastPage:return"尾页";case PreviewStringId.TB_TTip_Magnifier:return"放⼤/缩⼩";case PreviewStringId.TB_TTip_Map:return"⽂档视图";case PreviewStringId.TB_TTip_MultiplePages:return"多页";case PreviewStringId.TB_TTip_NextPage:return"下⼀页";case PreviewStringId.TB_TTip_PageSetup:return"页⾯设置";case PreviewStringId.TB_TTip_PreviousPage:return"上⼀页";case PreviewStringId.TB_TTip_Print:return"打印";case PreviewStringId.TB_TTip_PrintDirect:return"直接打印";case PreviewStringId.TB_TTip_Search:return"搜索";case PreviewStringId.TB_TTip_Send:return"发送E-Mail";case PreviewStringId.TB_TTip_Watermark:return"⽔印";case PreviewStringId.TB_TTip_Zoom:return"缩放";case PreviewStringId.TB_TTip_ZoomIn:return"放⼤";case PreviewStringId.TB_TTip_ZoomOut:return"缩⼩";case PreviewStringId.WMForm_Direction_BackwardDiagonal:return"反向倾斜";case PreviewStringId.WMForm_Direction_ForwardDiagonal:return"正向倾斜";case PreviewStringId.WMForm_Direction_Horizontal:return"横向";case PreviewStringId.WMForm_Direction_Vertical:return"纵向";case PreviewStringId.WMForm_HorzAlign_Center:return"置中";case PreviewStringId.WMForm_HorzAlign_Left:return"靠左";case PreviewStringId.WMForm_HorzAlign_Right:return"靠右";case PreviewStringId.WMForm_ImageClip:return"剪辑";case PreviewStringId.WMForm_ImageStretch:return"伸展";case PreviewStringId.WMForm_ImageZoom:return"缩放";case PreviewStringId.WMForm_PageRangeRgrItem_All:return"全部";case PreviewStringId.WMForm_PageRangeRgrItem_Pages:return"页码";case PreviewStringId.WMForm_PictureDlg_Title:return"选择图⽚";case PreviewStringId.WMForm_VertAlign_Bottom:return"底端";case PreviewStringId.WMForm_VertAlign_Middle:return"中间";case PreviewStringId.WMForm_VertAlign_Top:return"顶端";case PreviewStringId.WMForm_Watermark_Asap:return"ASAP";case PreviewStringId.WMForm_Watermark_Confidential:return"CONFIDENTIAL";case PreviewStringId.WMForm_Watermark_Copy:return"COPY";case PreviewStringId.WMForm_Watermark_DoNotCopy:return"DO NOT COPY";case PreviewStringId.WMForm_Watermark_Draft:return"DRAFT";case PreviewStringId.WMForm_Watermark_Evaluation:return"EVALUATION";case PreviewStringId.WMForm_Watermark_Original:return"ORIGINAL";case PreviewStringId.WMForm_Watermark_Personal:return"PERSONAL";case PreviewStringId.WMForm_Watermark_Sample:return"SAMPLE";case PreviewStringId.WMForm_Watermark_TopSecret:return"TOP SECRET";case PreviewStringId.WMForm_ZOrderRgrItem_Behind:return"在后⾯";case PreviewStringId.WMForm_ZOrderRgrItem_InFront:return"在前⾯";}return base.GetLocalizedString(id);}}public class XtraReports_CN :ReportLocalizer{public override string Language{get{return"简体中⽂";}}public override string GetLocalizedString(ReportStringId id){switch(id){case ReportStringId.BandDsg_QuantityPerPage:return"⼀个页⾯集合";case ReportStringId.BandDsg_QuantityPerReport:return"⼀个报表集合";case ReportStringId.BCForm_Lbl_Binding:return"结合";case ReportStringId.BCForm_Lbl_Property:return"属性";case ReportStringId.CatAppearance:return"版⾯";case ReportStringId.CatBehavior:return"状态";case ReportStringId.CatData:return"数据";case ReportStringId.CatLayout:return"布局";case ReportStringId.CatNavigation:return"导航";case ReportStringId.CatPageSettings:return"页⾯设置";case ReportStringId.Cmd_AlignToGrid:return"对齐⽹格线";case ReportStringId.Cmd_BottomMargin:return"底端边缘";case ReportStringId.Cmd_BringToFront:return"移到最上层";case ReportStringId.Cmd_Copy:return"复制";case ReportStringId.Cmd_Cut:return"剪贴";case ReportStringId.Cmd_Delete:return"删除";case ReportStringId.Cmd_Detail:return"详细";case ReportStringId.Cmd_DetailReport:return"详细报表";case ReportStringId.Cmd_GroupFooter:return"群组尾";case ReportStringId.Cmd_GroupHeader:return"群组⾸";case ReportStringId.Cmd_InsertBand:return"插⼊区段";case ReportStringId.Cmd_InsertDetailReport:return"插⼊详细报表";case ReportStringId.Cmd_InsertUnboundDetailReport:return"⾮绑定";case ReportStringId.Cmd_PageFooter:return"页尾";case ReportStringId.Cmd_PageHeader:return"页⾸";case ReportStringId.Cmd_Paste:return"粘贴";case ReportStringId.Cmd_Properties:return"属性";case ReportStringId.Cmd_ReportFooter:return"报表尾";case ReportStringId.Cmd_ReportHeader:return"报表⾸";case ReportStringId.Cmd_RtfClear:return"清除";case ReportStringId.Cmd_RtfLoad:return"加载⽂件";case ReportStringId.Cmd_SendToBack:return"移到最下层";case ReportStringId.Cmd_TableDelete:return"删除(&L)";case ReportStringId.Cmd_TableDeleteCell:return"单元格(&L)";case ReportStringId.Cmd_TableDeleteColumn:return"列(&C)";case ReportStringId.Cmd_TableDeleteRow:return"⾏(&R)";case ReportStringId.Cmd_TableInsert:return"插⼊(&I)";case ReportStringId.Cmd_TableInsertCell:return"单元格(&C)";case ReportStringId.Cmd_TableInsertColumnToLeft:return"左列(&L)";case ReportStringId.Cmd_TableInsertColumnToRight:return"右列(&R)";case ReportStringId.Cmd_TableInsertRowAbove:return"上⾏(&A)";case ReportStringId.Cmd_TableInsertRowBelow:return"下⾏(&B)";case ReportStringId.Cmd_TopMargin:return"顶端边缘";case ReportStringId.Cmd_ViewCode:return"检视代码";case ReportStringId.FindForm_Msg_FinishedSearching:return"搜索⽂件完成";case ReportStringId.FindForm_Msg_TotalFound:return"合计查找:";case ReportStringId.FSForm_Btn_Delete:return"删除";case ReportStringId.FSForm_GrBox_Sample:return"范例";case ReportStringId.FSForm_Lbl_Category:return"类别";case ReportStringId.FSForm_Lbl_CustomGeneral:return"⼀般格式不包含特殊数字格式";case ReportStringId.FSForm_Lbl_Prefix:return"上标";case ReportStringId.FSForm_Lbl_Suffix:return"下标";case ReportStringId.FSForm_Msg_BadSymbol:return"损坏的符号";case ReportStringId.FSForm_Tab_Custom:return"⾃定义";case ReportStringId.FSForm_Tab_StandardTypes:return"标准类型";case ReportStringId.Msg_CantFitBarcodeToControlBounds:return"条形码控件的边界太⼩";case ReportStringId.Msg_CreateReportInstance:return"您试图打开⼀个不同类型的报表来编辑。
devexpress xtratabcontrol用法DevExpress XtraTabControl是一个强大的界面控件,用于在WinForms应用程序中创建多个选项卡的用户界面。
以下是DevExpress XtraTabControl的一些用法:1. 创建TabControl对象:XtraTabControl tabControl = new XtraTabControl();2. 添加选项卡页:XtraTabPage page1 = new XtraTabPage();page1.Text = "Page 1";tabControl.TabPages.Add(page1);3. 设置选项卡显示位置:tabControl.TabPosition =DevExpress.XtraTab.TabPosition.Bottom;4. 设置选项卡外观样式:tabControl.Appearance.BackColor = Color.White;eBackColor = true;5. 添加控件到选项卡页中:Label label = new Label();label.Text = "Hello, World!";page1.Controls.Add(label);6. 响应选项卡页改变事件:tabControl.SelectedPageChanged +=TabControl_SelectedPageChanged;private void TabControl_SelectedPageChanged(object sender, TabPageChangedEventArgs e){// 处理选项卡页改变事件}6. 响应选项卡页关闭事件:tabControl.CloseButtonClick += TabControl_CloseButtonClick; private void TabControl_CloseButtonClick(object sender, EventArgs e){XtraTabControl tabControl = (XtraTabControl)sender;XtraTabPage page = tabControl.SelectedTabPage;tabControl.TabPages.Remove(page);}以上是DevExpress XtraTabControl的一些常用用法,您可以根据自己的需求进一步使用和扩展该控件。
DevExpress xtraGrid控件的使用电脑上面安装DXperieeXaf-9.2.6(我用的是这个版本,最新的更好),安装完成之后打开VS2008会发觉工具栏中多出了无数的控件,都是DevExpress 里面的,因为这控件是收费的东西,所以每次运行之前都会弹出一个版权解释的界面,这个也不要紧,可以破解,破解程序在我的资源里面。
GirdConol只是一个容器控件,必需要求GrView视图作为它的子控件,也就是说GirdControl里面必有起码有一个GridView,GridControl可以包含多个视图,可以实现视图的切换绑定的办法和DataGridView一样的: gridControl1.DataSource = ds.Tables[0].DefaultView; GridView频繁的一些属性设置:this.gridView1.OptionsBehavior.Editable = fae;//禁止编辑this.gridView1.OptionsCustomization.AllowFilter = false;//不允许用法过滤 this.gridView1.OptionsCustomization.AllowSort = false;//不允许用法排序this.gridView1.OptionsView.ShowGroupPanel = false;//不显示组面板 this.gridView1.OptionsView.ColumnAutoWidth=false;//假如宽度溢出,自动浮现滚动条this.gridView1.OptionsSelection.EnableAppearanceFocusCell = false;//禁止单元获得焦点this.gridView1.Appearance.SelectedRow.BackColor =Color.Transparent;//挑选的行背景透亮这CSDN不知道怎么样贴图出来,烦闷中。
devexpress waitdialogform原理概述说明1. 引言1.1 概述本文将详细介绍DevExpress WaitDialogForm的原理和应用场景。
WaitDialogForm是DevExpress控件库中的一个弹出式等待对话框,旨在提供一个友好的用户界面来显示应用程序正在处理任务。
通过此文,读者将了解该控件的功能原理、使用方法以及在多线程任务处理、长时间操作和数据加载等方面的应用场景。
1.2 文章结构本文共分为五个部分。
首先是引言部分,介绍文章的概述、目的和结构。
其次是DevExpress WaitDialogForm原理部分,其中包括该控件的介绍、功能原理和使用方法。
第三部分讨论了DevExpress WaitDialogForm在多线程任务处理时、长时间操作和数据加载过程中的应用场景。
第四部分通过一个实例演示与代码解析,展示了如何使用该控件来构建一个示例应用程序,并对运行效果进行展示与分析。
最后一部分是结论与总结,总结了DevExpress WaitDialogForm 原理的重要性,并对其优缺点进行思考,同时也展望了它未来可能的发展方向。
1.3 目的本文旨在提供关于DevExpress WaitDialogForm的详尽说明,帮助读者深入了解该控件的原理和使用方法,并指导读者在实际项目中的应用。
通过阅读本文,读者将对DevExpress WaitDialogForm具有更全面的认识,能够更加灵活地运用该控件来提升用户体验、改善程序的处理效率。
2. DevExpress WaitDialogForm原理2.1 WaitDialogForm介绍DevExpress WaitDialogForm是一种用于显示进度条和等待消息的对话框窗体。
它是由DevExpress公司开发的一个组件,可以在开发Windows应用程序时使用。
WaitDialogForm通过向用户显示当前操作的进度信息,提供了良好的用户体验。
DevExpress控件之NavBarControl灵活使⽤?CareysBlog本⽂主要展⽰Carey在C/S结构下使⽤DevExpress控件对权限的控制及处理⽅法.功能导航菜单使⽤的是NavBarControl.此种做法搭建⼀次,以后中⼩型项⽬即可重复使⽤,且对权限的控制,更改,业务需求变更等都具有较强的灵活性.PS:Q群C#DevExpress技术交流群号:160257101 欢迎各位DevExpress⽤户进群学习与交流.在权限控制⽅⾯应⽤⽐较简单且流⾏的五表权限结构,即a,⽤户表(_sysEmployee)b,⾓⾊表(_sysRoles)c,功能表(_systemFunction),d⽤户对⾓⾊表(_sysUser_Role),e⾓⾊对功能表(_sysRole_Popedom),关系图如下.在使⽤NavBarControl动态⽣成导航菜单时使⽤的关键表为功能表(_systemFunction),此表字段说明如下:程序关键代码如下:01/// <summary>02/// 加载导航菜单03/// </summary>04/// <returns>成功/失败</returns>05private boolSystemFunctionLoad()06{07 DataTabledat=new DataTable();08 if(AccountInfo._Us_Role==1)09 {10 //如果为管理员11 dat = SystemManage.GetAllSystemFunction();//查询所有功能菜单12 }13 else14 {15 dat = SystemManage.GetAllSystemFunction(AccountInfo._Us_Role);//根据⾓⾊ID查询相关功能数据集合16 }17 if(dat != null&&dat.Rows.Count> 0)18 {19 NavBarGroupnbg = null;20 NavBarItem item = null;21 for(int i = 0; i <dat.Rows.Count; i++)22 {23 if(dat.Rows[i]["levels"].ToString() == "0")24 {25 //⽗级菜单26 nbg = new NavBarGroup();27 nbg.Caption = dat.Rows[i]["funcName"].ToString();28 navBarControl1.Groups.Add(nbg);29 }30 else31 {32 //⼦级菜单33 item = new NavBarItem();34 item.Caption = dat.Rows[i]["funcName"].ToString();//菜单名称35 = dat.Rows[i]["formName"].ToString();//窗体路径36 item.Hint = dat.Rows[i]["showType"].ToString();//打开模式37 item.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(Item_Click);//赋予单击事件38 nbg.ItemLinks.Add(item);39 }40 }41 return true;42 }43 else44 return false;45}菜单单击事件:01/// <summary>02/// 菜单单击事件03/// </summary>04/// <param name="sender"></param>05/// <param name="e"></param>06private void Item_Click(object sender, EventArgs e)07{08 NavBarItemsd = sender as NavBarItem;09 if(.Contains("."))//根据表SystemFunction-字段formName确定是否点击的为功能菜单10 {11 try12 {13 groupControl1.Visible = false;14 System.Reflection.AssemblytempAssembly =System.Reflection.Assembly.GetExecutingAssembly();//获取包含当前执⾏的代码的程序集15 XtraFormfm = (XtraForm)(tempAssembly.CreateInstance()); //反射机制找到指定名称的类型并使⽤系统激活器创建它的实例16 if(fm != null)17 {18 fm.AccessibleName = sd.Hint;19 fm.Text = sd.Caption;20 CreateChildForm(fm);//打开窗体21 }22 else23 {24 XtraMessageBox.Show("窗⼝数据配置错误,请联系系统管理员!", "系统提⽰",MessageBoxButtons.OK, rmation);25 }26 }27 catch(Exception)28 {29 }30 }31}打开窗体⽤到的是xtraTabbedMdiManager控件,该空间允许同时打开多个⼦窗体,你需要做的就是拖上⼀个此控件到设计窗体,然后在窗体加载事件中加⼊xtraTabbedMdiManager1.MdiParent = this;即可.01/// <summary>0203 /// 打开窗体0405 /// </summary>0607 /// <param name="ChildForm"></param>0809 /// <returns></returns>1011 public static Form CreateChildForm(XtraFormChildForm)1213 {1415 foreach(Form frm in mf.MdiChildren)1617 {1819 if(ChildForm.Text == frm.Text)2021 {2223 ChildForm.Close();2425 ChildForm.Dispose();2627 frm.Activate();2829 return frm;3031 }323435 if(ChildForm.AccessibleName == "Show")3637 {3839 ChildForm.MdiParent = mf;4041 ChildForm.Show();4243 }4445 else4647 {4849 ChildForm.MaximizeBox = false;//禁⽤最⼤化5051 ChildForm.ShowIcon = false;//禁⽤图标5253 ChildForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;//窗体边框样式5455 ChildForm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;//窗体在中间位置打开5657 ChildForm.ShowInTaskbar = false;//不在任务栏显⽰5859 ChildForm.ShowDialog();//以模式窗体打开6061 }6263 return ChildForm;6465 }最后再附加⼀段功能增强代码,实现当同时打开多个⼦窗体时双击page标签关闭窗体的效果.01private void xtraTabbedMdiManager1_MouseDown(object sender, MouseEventArgs e)02 {03 if(e.Button == MouseButtons.Left)04 {05 DateTimedt = DateTime.Now;06 TimeSpan span = dt.Subtract(m_LastClick);07 if(span.TotalMilliseconds< 300) //如果两次点击的时间间隔⼩于300毫秒,则认为是双击08 {09 if(this.MdiChildren.Length> 1)10 {11 this.ActiveMdiChild.Close();12 }13 m_LastClick = dt.AddMinutes(-1);14 }15 else16 m_LastClick = dt;17 }另外的公共菜单诸如修改密码,退出系统,更换⽪肤等功能可以⽤代码直接创建,也可在设计界⾯创建.声明: 本⽂采⽤BY-NC-SA协议进⾏授权 | Carey's Blog转载请注明转⾃《DevExpress控件之NavBarControl灵活使⽤》。
devexpress 中imagelistboxcontrol的使用方法在DevExpress中,ImageListBoxControl 是一个列表框控件,用于显示图像和文本。
以下是ImageListBoxControl 的基本使用方法的简单示例(请注意,DevExpress 版本可能会有所不同,以下示例基于DevExpress 版本21.2):1. 添加ImageListBoxControl 到窗体或用户控件:在设计时,你可以从DevExpress 工具箱中拖放`ImageListBoxControl` 到窗体或用户控件上。
2. 设置ImageListBoxControl 属性:-设置`Items` 属性以添加图像和文本项。
-设置`ImageList` 属性以指定图像列表。
```csharpusing DevExpress.XtraEditors.Controls;// ...// 假设有一个ImageListBoxControl 控件命名为imageListBoxControl1ImageListBoxItem item1 = new ImageListBoxItem("Item 1", 0); // 第二个参数是图像列表中图像的索引ImageListBoxItem item2 = new ImageListBoxItem("Item 2", 1);imageListBoxControl1.Items.AddRange(new ImageListBoxItem[] { item1, item2 });// 设置图像列表,假设有一个ImageList 控件命名为imageList1imageListBoxControl1.ImageList = imageList1;```3. 处理事件(如果需要):你可以通过处理ImageListBoxControl 的事件来响应用户的操作,例如选择项发生变化。
界⾯开发控件DevExpressSpreadsheet使⽤教程:如何从数据库保存和加载⽂档DevExpress技术交流群2:775869749 欢迎⼀起进群讨论拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适⽤于 Visual Studio的CodeRush等⼀系列辅助⼯具。
屡获⼤奖的软件开发平台DevExpress Universal 2020年全新⾸发v20.1,最新版拥有众多新产品和数⼗个具有⾼影响⼒的功能,可为桌⾯、Web和移动应⽤提供直观的解决⽅案,全⾯解决各种使⽤场景问题。
系统背景平台: MVC产品:MVC Spreadsheet实现步骤:1. 创建⼀个返回Spreadsheet设置的帮助器类,确保指定Name和CallbackRouteValues属性:public static class SpreadsheetSettingsHelper {public static SpreadsheetSettings GetSpreadsheetSettings() {SpreadsheetSettings settings = new SpreadsheetSettings(); = "SpreadsheetName";settings.CallbackRouteValues = new { Controller = "Home", Action = "SpreadsheetPartial" };...return settings;}}2. 在这些设置中处理Saving事件,然后使⽤SaveCopy⽅法将Spreadsheet⽂档保存到byte[] 。
然后将结果保存到数据库中:settings.Saving = (s, e) =>{byte[] docBytes = SpreadsheetExtension.SaveCopy("SpreadsheetName", DocumentFormat.Xlsx);DataHelper.SaveDocument(docBytes);e.Handled = true;};3. 在带有Spreadsheet部分视图和控制器中使⽤帮助器:@Html.DevExpress().Spreadsheet(SpreadsheetSettingsHelper.GetSpreadsheetSettings()).Open(Model.DocumentId, Model.DocumentFormat, () => { return Model.Document; }).GetHtml() public ActionResult SpreadsheetPartial() { // Spreadsheet's CallbackRouteAction methodreturn SpreadsheetExtension.GetCallbackResult(SpreadsheetSettingsHelper.GetSpreadsheetSettings());}变更记录:16.1:Spreadsheet现在允许处理Controller中的某些操作,因此可以使⽤Spreadsheet ribbon的'Save'按钮将⽂档保存到数据。
Devexpress是一个面向开发人员的软件开发公司,该公司开发的产品被广泛用于各种软件开发项目中。
其中,Devexpress的表格控件(Table Control)是非常常用的功能之一。
而在表格控件中,表格单元格(Table Cell)的表达式功能也是开发人员经常会用到的一个功能。
在Devexpress的表格单元格中,可以通过表达式来实现一些动态的计算、显示和控制。
这些表达式可以帮助开发人员在表格中展示计算结果、根据条件显示不同的内容、对数据进行格式化等等。
下面将介绍一些关于Devexpress表格单元格表达式的使用方法和一些常见问题的解决方案。
一、表达式的基本语法在Devexpress的表格单元格中,可以使用一些特定的语法来表示表达式,常见的语法包括:1. 字段名:通过字段名来引用表格中的数据,比如 [字段名]。
2. 数学运算符:可以使用加减乘除等数学运算符进行数值的计算。
3. 逻辑运算符:可以使用逻辑运算符进行条件的判断和控制。
4. 函数:可以使用一些内置函数来实现特定的功能,比如格式化日期、字符串处理等。
二、表达式的应用场景在实际的软件开发项目中,表格单元格的表达式功能可以应用于很多场景,比如:1. 计算金额:可以通过表达式来实现对表格中数值字段的汇总计算,比如计算订单总金额。
2. 条件显示:可以根据某些条件来控制表格单元格的显示和隐藏,比如根据订单状态来显示不同的文本。
3. 数据格式化:可以通过表达式来对数据进行格式化,比如将日期显示为特定的格式,或者将数值字段显示为货币格式等。
三、常见问题及解决方案在使用Devexpress的表格单元格表达式功能时,经常会遇到一些常见的问题,下面将介绍一些常见问题的解决方案:1. 表达式计算错误:当表达式中有语法错误或者数据类型不匹配时,会导致表达式计算错误。
此时需要仔细检查表达式语法和数据类型,保证其正确性。
2. 条件判断失效:在使用逻辑运算符进行条件判断时,需要确保条件表达式的逻辑正确性。
DevExpress控件学习
DevExpress控件是使用广泛的商业UI控件套件,它使开发人员能够快速而简
单地创建具有高度可视化的Win、Web和移动应用程序。
DevExpress提供了许多
可定制化的控件,如表格、网格、图表、仪表等,来创建专业且高端的应用程序界面。
本文将会介绍DevExpress控件的主要功能和特性,以及在实际应用中如何使
用这些控件来提高开发效率和增强应用程序的功能。
DevExpress控件概述
DevExpress控件套件是一个强大的开发工具,可以帮助开发人员创建具有高
度可视化的应用程序。
它在可视化和交互方面,是业内非常知名的UI控件套件之一。
DevExpress控件套件包含了许多常见控件,如按钮、文本框、标签等。
同时,它还包含了更加专业的控件,如表格、网格、图表、仪表等,以及工具条、导航栏、对话框等一系列控件、组件和工具库。
同时,DevExpress控件套件对多语言国际
化的支持也非常完善。
它支持多种开发语言和平台,包括WinForm、WPF、WebForm、MVC等。
这些控件和组件的特性可以帮助开发人员提高开发效率、简
化代码和增强应用程序的功能。
主要功能与特性
DevExpress控件套件拥有良好的设计和功能特点,这些特点可以让开发人员
快速和高效地构建应用程序。
下面是DevExpress控件套件的主要功能和特性:
1. 高质量UI控件
DevExpress提供了许多视觉和功能完整的UI控件,这些控件可以帮助开发人
员快速构建各种各样的应用程序。
这些控件在各种情况下都可以良好地工作,不管是在WinForm应用程序、WPF应用程序或Web应用程序等场景下。
另外,DevExpress还提供了一些特殊的控件,比如XtraReports和PrintControl控件,
可以帮助开发人员设计和生成高质量的报表和打印文件。
2. 应用程序主题和外观定制
DevExpress控件套件提供了多种内置的主题和外观,例如经典、黑色、WinXP 和Office2007等等。
开发人员可以根据自己的需求定制和应用这些主题和外观,
以便更好地适应应用程序的UI设计需求。
3. 数据绑定和集成
DevExpress控件套件具有良好的数据绑定和集成功能,可以将数据源连接到
多种控件上。
在不同平台下,你可以使用数据绑定来与Grid、ComboBox和
ListView等控件关联不同的数据源,并自动填充控件。
此外,还可以使用数据绑定来自动触发控件的数据验证和格式化。
4. 编辑器和设计器
DevExpress控件套件提供了多种内置的控件编辑器和设计器,帮助开发人员快速构建UI。
他们如此强大,以至于你可以像使用Word或Excel应用程序中的编辑器一样使用它们来设计和构建UI。
这些工具提供了一些预设的模板、组件和工具,可以方便地建立并调整各种不同类型的应用程序界面。
5. 安全和认证
DevExpress控件套件提供了对安全和认证的支持,包括支持Windows和Web 平台的多种身份验证和授权机制。
它还提供了对常见认证方案,如OpenID和OAuth的支持。
6. 强大的性能和稳定性
DevExpress控件套件在性能和稳定性方面非常强大,它的代码底层是经过高度优化的,能够帮助开发人员最大限度地减少应用程序的延迟和故障。
提供的数据过滤、排序和分组功能也有助于提高整体性能。
控件的基本使用
DevExpress控件套件提供的控件有很多种,并且使用起来也比较复杂。
在这里,我们将以GridControl控件为例,来进行实际应用的演示。
GridControl控件是一个高效的表格控件,它支持数据绑定、导出、过滤、排序、分组等功能,非常适合WinForm和WPF应用程序的开发。
首先,在Visual Studio中创建一个新的WinForm项目,然后添加一个GridControl控件。
我们可以使用控件的设计器来创建控件并设置其属性,也可以使用代码来添加和配置控件。
接下来,在为GridControl控件设置数据源之前,需要为其添加Columns。
Columns是表格的列集合,它定义了表格的结构和样式。
我们可以通过设计器或代码来添加Columns。
这里采用代码方式来添加Columns,代码如下:
``` //设置表格列名 gridView1.Columns.Add(new
DevExpress.XtraGrid.Columns.GridColumn() { Caption =。