devexpress控件学习总结z

合集下载

DevExpress控件学习

DevExpress控件学习

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等等。

DevExpressVCL安装问题总结

DevExpressVCL安装问题总结

DevExpressVCL安装问题总结今天安装DevExpress 的时候总出问题,很难过,以前很顺利的就走下来了,不知今天为什么!总是报 cxExtEditorsvcld7.bpl 无法正常打开!安装了好几次,都一样,应该不是源文件损坏,因为以前安装过,没问题。

而且其他控件可正常安装,只有这个报错。

实在找不到问题原因,上网查了半天,终于找到一位仁兄写的方法,简直太崇拜他了,在此,郑重感谢这位仁兄帮我解决了问题。

为了更多人获益,我转到这里,以下内容为转帖:1.下载安装 DevExpress VCL 如果运行 Delphi_7,则先关闭。

2.通过运行ExpressQuantumGrid_Suite_v5.0_Full_Source_Code_for_Delphi_7控件包中的 Setup.exe 来进行正常安装。

3.删除操作系统的$(System32) 目录中的以下文件:cxExtEditorsVCLD7.bpldclcxExtEditorsVCLD7.bpl4.运行 Delphi_7,启动中警告 dclExtEditorVCLD7包不能加载,选择以后不再加载。

5.在 Delphi_7中通过 Component->Install Packages..菜单路径把所有 Express 包删除。

6.在Delphi_7中通过Tools->Environment Options->Library->Library path 菜单路径打开 Diredtories 窗口。

将这些路径删除:......\Developer Express Inc\ExpressDataController\Delphi 7\Lib......\Developer Express Inc\XP Theme Manager\Delphi 7\Lib ......\Developer Express Inc\CX Library\Delphi 7\Lib......\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Lib......\Developer Express Inc\ExpressPageControl 2\Delphi 7\Lib......\Developer Express Inc\ExpressQuantumGrid 5\Delphi 7\Lib添加这些路径:......\Developer Express Inc\ExpressDataController\Delphi 7\Sources......\Developer Express Inc\XP Theme Manager\Delphi 7\Sources......\Developer Express Inc\CX Library\Delphi 7\Sources......\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Sources......\Developer Express Inc\ExpressPageControl 2\Delphi 7\Sources......\Developer Express Inc\ExpressQuantumGrid 5\Delphi 7\Sources7.在Delphi_7打开ExpressEditors Library 5\Delphi 7\Sources\cxEditorsVCLD7.dpk,编译但不要安装。

关于DevExpress的XtraTreeList使用方法总结

关于DevExpress的XtraTreeList使用方法总结

关于DevExpress的XtraTreeList使⽤⽅法总结在最近的⼯作中,使⽤到了DevExpress中的XtraTreeList⽤法,正好借此机会研究⼀下此控件的应⽤,现将其应⽤技巧与⼤家分享⼀下。

1、使⽤XtraTreeList绑定数据(数据格式可以为ArrayList形式)我们实例说明要实现下⾯样式的窗体:⾸先,在Run Designer⾥⾯添加两个列(columns),设置两列的属性,其中第⼀列“名称”为string格式,FieldName为Name;第⼆列“选择”将ColumnEdit属性设置为CheckEdit1,FieldName为IsChecked,设置完毕。

其次可以编写⼀个类,⽤来绑定TreeList,针对此TreeList窗体,其类代码设置如下:public class TestTreeList{public TestTreeList(){}//名称字段变量private string m_sName = string.Empty;//选择字段变量private bool m_bIsChecked = false;//⼦Node节点ID变量private int m_iID = -1;//⽗Node节点ID变量private int m_iParentID = -1;public int ID{get{return m_iID;}set{m_iID = value;}public int ParentID{get{return m_iParentID;}set{m_iParentID = value;}}public string Name{get{return m_sName;}set{m_sName = value;}}public bool IsChecked{get{return m_bIsChecked;}set{m_bIsChecked = value;}}}类构造完成,在FormLoad⾥⾯借助此类对TreeList进⾏绑定: private void Form1_Load(object sender, EventArgs e)ArrayList pList = new ArrayList();TestTreeList p = new TestTreeList(); = "测试1";p.IsChecked = true;p.ID = 1;pList.Add(p);TestTreeList q = new TestTreeList(); = "测试2";q.IsChecked = false;q.ParentID = 1;q.ID = 2;pList.Add(q);this.treeList1.DataSource = pList;this.treeList1.RefreshDataSource();}这样就可以构造出⼀个简单的TreeList应⽤⽅法,程序运⾏结果可得第⼀幅图所⽰。

DevExpress控件的GridControl控件小结

DevExpress控件的GridControl控件小结

目录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事件,给新行某字段赋值。

DevExpress学习小结

DevExpress学习小结

以下内容为学习DevExpress过程中的以下总结:1、Grid根据单元格设置行背景色:private void gvTaskOrderDetail_RowCellStyle(object sender, RowCellStyleEventArgs e) {GridView gv = sender as GridView;Int32? goodsStockQty = CommonUtils.ObjectToInt32(gv.GetRowCellValue(e.RowHandle,gv.Columns.ColumnByFieldName("GOODSSTOCKQTY")));Int32? productId = CommonUtils.ObjectToInt32(gv.GetRowCellValue(e.RowHandle,gv.Columns.ColumnByFieldName("TASKPRODUCTID")));if (goodsStockQty != null){if (goodsStockQty > 0){e.Appearance.BackColor = Color.Pink;}else{if (productId == Constants.SMJH_ID){e.Appearance.BackColor = Color.Pink;}}}else{if (productId == Constants.SMJH_ID){e.Appearance.BackColor = Color.Pink;}}}2、c#程序查询oracle,在界面数据显示“?”,解决方法:在客户的电脑新建环境变量,变量名为:NLS_LANG值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK3、数字控件去掉上下滚动箭头:属性:AllowMouseWheel:false4、CheckedComboBoxEdit下拉多选控件的使用:a、初始化:foreach (DataRow dr in dt.Rows){this.chkcbGoodsType.Properties.Items.Add(newComboxInfo(dr["GOODSTYPEID"].ToString(), dr["GOODSTYPENAME"].ToString()));}第二种方法:CheckedListBoxItem[] itemListQuery = new CheckedListBoxItem[listCustomerType.Count];int check = 0;foreach (DictDetailVo det in listCustomerType){itemListQuery[check] = new CheckedListBoxItem(det.DictDetailCode, det.DictDetailName);check++;}this.chkcbCustomerType.Properties.Items.AddRange(itemListQuery);b、后台赋值:(id和name对应)第一种方法:this.chkcbGoodsType.EditValue = dt.Rows[0]["GOODSTYPEID"].ToString();this.chkDriveTruckType.RefreshEditValue();或者this.chkcbGoodsType.Text = dt.Rows[0]["GOODSTYPENAME"].ToString();第二种方法this.chkcbGoodsType.EditValue =new CheckedListBoxItem( dt.Rows[0]["GOODSTYPEID"].ToString(),dt.Rows[0]["GOODSTYPENAME"].To String());c、获取选中的值:IList<object> list = this.chkcbGoodsType.Properties.Items.GetCheckedValues();string goodsType=""; foreach (object obj in list){goodsType += "," + ((ComboxInfo)obj).Code.ToString();}第二种方法:string str=this.chkcbCustomerTypeQuery.EditValue;5、ProgressBarControl进度条:this.pBUpload.Properties.Maximum = 100;this.pBUpload.Properties.Step = 1;pBUpload.Position = 0;for (int i = 1; i < 101; i++){//处理当前消息队列中的所有windows消息Application.DoEvents();this.pBUpload.PerformStep();}6、GridControl添加按钮列:把列的ColumnEdit属性设置为RepositoryItemButtonEdit把TextEditStyle属性设置为HideTextEditor;把Buttons的Kind属性设置为Glyph;把Button的Caption用于设置文字把Buttons的TextOption的Appearance的HAlignment属性设置为Near;ButtonStyle设置为Office2003;7、treeList展示到某一级添加事件:NodesReloadedTreeListNodes nodes = treeListProType.Nodes;if (nodes != null && nodes.Count > 0){foreach (TreeListNode node in nodes){if (node.Level == 0){node.Expanded = true;}}}8、布局控件禁用仍然显示文本标题:设置:layoutControl1Appearance--DisabledLayoutItem-ForeColor-ControlText;Appearance--DisabledLayoutItem-Options-UseForeColor-True;9、GridView某列用正则表达式限定编辑:行编辑:GridView某列用正则表达式时,从数据库绑定数据时,如果是数字类型的,要用to_char(det.demandqty) 转换;10、日期控件DateEdit设置:1、DateEdit,想要动态使其格式为"yyyy-MM-dd"或"yyyy-MM-dd HH:mm",用Mask属性设置EditMask = 'yyyy/MM/dd HH:mm:ss',UseMaskAsDisplayFormat = True日期框显示时间的设置VistaDisplayModeVistaEditTime控件EditMask和DisplayFormat属性设置:yyyy/MM/dd HH:mm:ss2、日期控件中如果包含了日期+时分秒,可采用如下设置:设置以下属性dateEdit1.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;dateEdit1.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True;设置显示长日期模式(日期+时间):dateEdit1.Properties.DisplayFormat.FormatString="g"dateEdit1.Properties.DisplayFormat.FormatType=DateTimedateEdit1.Properties.EditFormat.FormatString="g"dateEdit1.Properties.EditFormat.FormatType=DateTime设置为Vista模式时,如果要显示日期+时间的长日期模式,还需要设置:VistaTimeProperties.DisplayForm3、日期控件只显示日期:Mask--EditMask:yyyy/MM/ddUseMaskAsDisplayFormat = True11、右键菜单:第一步:从工具箱中将BarManager拉入窗体第二步:从工具箱中将PopupMenu拉入窗体,设置PopupMenu的Manager属性为barManager1。

DevExpress控件使用大全

DevExpress控件使用大全

第三方控件使用大全一、ComboBoxEdit1、如何使其不可编辑TextEditStyle 设置为:DisableTextEditor2、如何设置鼠标为手形Cursor 设置为:Hand二、GridControl1、如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click2、如何新增一条记录(1)、gridView.AddNewRow()(2)、实现gridView_InitNewRow事件3、如何解决GridControl记录能获取而没有显示出来的问题gridView.populateColumns();4、如何让行只能选择而不能编辑(或编辑某一单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click(2)、View->OptionsBehavior->Editable 设置为:false5、如何禁用GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false6、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel 设置为:false7、如何禁用GridControl中列头的过滤器过滤器如下图所示:设置Run Design->OptionsCustomization->AllowFilter 设置为:false8、如何在查询得到0条记录时显示自定义的字符提示/显示如图所示:方法如下://When no Records Are Being Displayedprivatevoid gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e){//方法一(此方法为GridView设置了数据源绑定时,可用)ColumnView columnView = sender as ColumnView;BindingSource bindingSource = this.gridView1.DataSource as BindingSource;if(bindingSource.Count == 0){string str = "没有查询到你所想要的数据!";Font f = new Font("宋体", 10, FontStyle.Bold);Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5,e.Bounds.Right - 5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black, r);}//方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法)if (this._flag){if (this.gridView1.RowCount == 0){string str = "没有查询到你所想要的数据!";Font f = new Font("宋体", 10, FontStyle.Bold);Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width -5, e.Bounds.Height - 5);e.Graphics.DrawString(str, f, Brushes.Black, r);}}}9、如何显示水平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false;10、如何定位到第一条数据/记录?设置this.gridView.MoveFirst()11、如何定位到下一条数据/记录?设置this.gridView.MoveNext()12、如何定位到最后一条数据/记录?设置this.gridView.MoveLast()13、设置成一次选择一行,并且不能被编辑this.gridView1.FocusRectStyle =DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;14、如何显示行号?this.gridView1.IndicatorWidth = 40;//显示行的序号privatevoid gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) {if (.IsRowIndicator && e.RowHandle>=0){.DisplayText = (e.RowHandle + 1).ToString();}}15、如何让各列头禁止移动?设置gridView1.OptionsCustomization.AllowColumnMoving = false;16、如何让各列头禁止排序?设置gridView1.OptionsCustomization.AllowSort = false;17、如何禁止各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;18、19、20、21、22、23、24、25、26、三、navBarControl1、如何在每一个navBarGroup里添加自己想要的控件设置GroupStyle: ControlContainer2、如何设置navBarGroup有滚动条设置SkinExplorerBarViewScrollStyle:ScrollBar3、如休把navBarGroup设置成如下样式如图所示:设置navBarGroup的PaintStyleName属性为: SkinNavigationPane四、toolTipController效果图如下:1、如何设置显示的时间长短设置this.toolTipController1.AutoPopDelay = 2000;2、如何在屏幕上显示如上图所示的效果ToolTipControllerShowEventArgs args = this.toolTipController1.CreateShowArgs(); this.toolTipController1.SetToolTip(this.sbtnYes, "请选择一条记录!");this.toolTipController1.SetTitle(this.sbtnYes, "提示");this.toolTipController1.SetToolTipIconType(this.sbtnYes,DevExpress.Utils.ToolTipIconType.Exclamation);this.toolTipController1.ShowBeak = true;this.toolTipController1.ShowShadow = true;this.toolTipController1.Rounded = true;this.toolTipController1.ShowHint("请选择一条记录!", "提示"); args.ToolTip = "请选择一条记录!";args.Title = "提示";3、如何设置边框的颜色this.toolTipController1.Appearance.BorderColor = Color.Red;五、TextEdit1、如何设置TextEdit为多行,可拉伸设置TextEdit的Propertity->AutoHeight为:False六、LayoutControl1、如何设置LayoutItem为隐藏设置LayoutItem.Visibility = Never七、TreeList1、如何隐藏TreeList的列头设置TreeListr的OptionsView的ShowColumns属性为:False2、如何八、PictureEdit1、如何禁止PictureEdit的右键菜单?设置PictureEdit的Properties->ShowMenu为:false九、TreeList1、如何让TreeList的每个结点高亮显示?效果如下:代码如下:privatevoid treeList1_CustomDrawNodeCell(object sender,DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e){TreeList node = sender as TreeList;if (e.Node == node.FocusedNode){e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);Rectangle r = new Rectangle(e.EditViewInfo.ContentRect.Left,e.EditViewInfo.ContentRect.Top,Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1.Font).Width + 1),Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1.Font).Height));e.Graphics.FillRectangle(SystemBrushes.Highlight, r);e.Graphics.DrawString(e.CellText, treeList1.Font, SystemBrushes.HighlightText, r);e.Handled = true;}}//============================================================================ //===============================以下内容为收集=============================== //============================================================================一、改变grid的样式。

DevExpress之XtraReport学习笔记

DevExpress之XtraReport学习笔记

DevExpress之XtraReport学习笔记XtraReport⼀、基本概念:XtraReports 中的每个报表都由 XtraRepot 类的⼀个实例表⽰,或者由该类的⼦类来表⽰(这种情况更常见)。

因此,每个报表都作为带区的容器使⽤,⽽每个带区中都包含报表控件。

XtraReports 中的每个报表都可以被绑定到数据,或者不绑定。

要创建绑定报表,则⾸先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项。

报表控件、带区和报表⾃⾝的所有⼤⼩和位置,都以报表内相同的单位度量。

度量单位由报表的 XtraReport.ReportUnit 属性指定,可以设置为下列类型之⼀:百分之⼀英⼨:当 ReportUnit 属性值被设置为ReportUnit.HundredthsOfAnInch 时使⽤。

⼗分之⼀毫⽶:当 ReportUnit 属性值被设置为 ReportUnit.TenthsOfAMillimeter 时使⽤。

⼆、页⾯构建时⽤到的事件Before Print:在预览/打印/导出报表期间,在 XRControl 对象创建其图像之前,XRControl.BeforePrint 事件发⽣,主要⽤于以程序⽅式改变报表的属性、带区的属性、以及存放在 DetailBand 细节带区中的控件的属性。

在此事件中可以执⾏⼤部分任务 (例如改变 XRControl.Visible、XRControl.BackColor、XRControl.BorderColor 以及其他属性),可以被轻松执⾏,⽽⽆需编写代码,只是使⽤格式设置规则。

此外,BeforePrint 事件可以被接管,从⽽重新指派控件的样式,并且调整其XRControl.LocationF 属性。

在 BeforePrint 事件中,可以使⽤ XtraReportBase.GetCurrentColumnValue ⽅法为数据绑定控件获取数据列的当前值。

DevExpress控件运用

DevExpress控件运用

5表示当前是第五条记录,12表示总记录条数 OptionsBehavior Editable/ReadOnly 不可编辑状态
12
5. GridControl
LayoutView.OptionsCarouselMode 属性,包括了椭圆的螺旋角和转动角:
13
5.GridControl
CardView
11
5. GridControl
LayoutView
多种卡片布局,可以通过 LayoutView.OptionsView.ViewMode 属性设置 1.单张卡片 2.单行 3.单列 4.多行 5.多列 6.Carousel LayoutView.OptionsMultiRecordMode.MaxCardRows LayoutView.OptionsMultiRecordMode.MaxCardColumns 卡片的对齐方式LayoutView.OptionsView.ContentAlignment 属性卡片内容对齐 LayoutViewOptionsView.CardsAlignment 卡片对齐 Carousel 布局 参数可以通过 LayoutView.OptionsCarouselMode 属性设置 CardCaptionFormat 指定卡片标题的模式。 在默认情况下,此属性的值是“ Record N {0}”。 意思是卡片标题显示后接记录号的“Record N ”字符串。 也可以 强制使卡片视图显示卡片内的字段值。 例如,把 CardCaptionFormat 属性设置 为 “{3} ” 则显示第二列的值 默认为下图
DefaultLookAndFeel 皮肤控件
5
3.BarManager 、NavBarControl

DevExpress控件使用经验总结

DevExpress控件使用经验总结

DevExpress控件使用经验总结DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet 界面控件。

本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。

总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。

本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路。

1、应用Office2007和Office2010的界面主题开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。

经过查找发现需要在入口函数里面添加几行代码,如下所示。

erSkins.OfficeSkins.Register();erSkins.BonusSkins.Register();DevExpress.Skins.SkinManager.EnableFormSkins();指定界面主题效果,可以通过代码设置,指定主题的名称即可。

UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");或者在界面中添加一个控件 DefaultLookAndFeel,设置其对应的界面效果即可实现整个设计时刻和运行时刻的界面效果,如下图所示。

2、Properties属性DevExpress很多控件的一般属性,会放置在该属性下面,如ComboBox下拉列表的属性操作如下private void InitDictItem(){this.txtManufacture.Properties.Items.Clear();this.txtManufacture.Properties.Items.AddRange(DictItemUtil.GetDictByDictType("供货商"));}这是一个很丰富属性的归类,很多常用的属性基本上都囊括在这里了,如果你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。

DevExpress用法总结大全

DevExpress用法总结大全

DevExpress用法总结大全使用DevExpress控件来做项目开发已经有很长一段时间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很多问题需要解决的,随着一个个问题的解决,也留下很多对DevExpress控件的使用经验及教训,综合设计到的多个项目的问题,对这些开发常用的要点进行总结,方便别人也方便自己。

提供这些解决方法,一个可以快速应用到项目中,二个也可以作为对界面开发的更高要求对待自己的项目,使得自己的东西更加完美,更加受欢迎。

1、 GridControl控件的数据显示的样式控制DevExpress控件开发常用要点总结如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示。

this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(gridView1_RowCellStyle);void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e){if (e.Column.FieldName == "PublishType"){if (e.CellValue != null && e.CellValue.ToString() == "中介"){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}if (e.Column.FieldName == "PublishTime"){e.Column.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";}if (e.Column.FieldName == "Title"){string id = this.winGridViewPager1.gridView1.GetRowCellDisplayText(e.RowHandle, "Id");if (historyDict.ContainsKey(id)){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}}2、在LayoutControl布局中固定控件宽度DevExpress控件开发常用要点总结固定宽度后的真实效果。

DevExpress基本控件讲解

DevExpress基本控件讲解


谢 谢!


图表控件(Chart)
各种图表种类齐全. 条形图、线形图、饼图、点状图、环形图、雷达图、面积图、甘特图, 3D效果 图表的DEMO

综合性示例
我们来欣赏一下DevExpress控件在一个实际项目中的综合应用. 该示例以一个影碟租售店的销售管理作为应用的场景. 查看示例
树控件

树控件的主要功能
以网格结构显示树型数据,可以显示多列数据 和网格控件一样,可以单击列标头排序 和网格控件一样,有即点即输的编辑功能 内置拖放结点操作 树控件的DEMO演示

工具栏及导航控件
DevExpress的工具栏及导航控件完全取代了.net framework自带的一 系列相似功能的标准控件,功能更为强大,使用更加灵活.并有多种皮 肤和样式可供选择. 侧边栏导航(NavBar):有Outlook样式、XP样式 DEMO演示 菜单栏和工具栏 DEMO演示
DevExpress基本控件讲解
为产品规划部而作

控件按使用的技术平台的分类
WINFROM WPF Silverlight 目前.net开发小组用的是WINFORM系列的控件.

WINFROM控件系列
中文名称 网格(表格) 树 工具栏及导航 日历 富文本编辑 图表
网格控件的主要功能
多种视图(网格、卡片、阵列) 丰富的格式控制(复合表头、合并单元格线条、背景、字体、高亮、 条件格式…) 主从表(Master-Detail)关联数据的展示 对列进行分组 内置排序和汇总的功能 内含对搜索和筛选的支持 在线编辑、插入、删除的功能 网格控件的演示

富文本编辑控件(RichEditor)
完全模仿Word的富文本编辑控件. 支持多种格式:Word2003/2007,Rtf,Html,纯文本,PDF(只能导出) 丰富的格式控制。 邮件合并:在文档中预留特殊标记,在程序中自动用内容替换这些标 记。可做到批量处理。 主要的缺点 :不支持浮动的排版元素 (有可能在下一个版本会改进) 日程表的DEMO

DevExpressReport学习总结(一)基础知识总结

DevExpressReport学习总结(一)基础知识总结

DevExpressReport学习总结(⼀)基础知识总结 Dev Express,⼀个⾮常优秀的报表控件。

像其他报表⼀样,该报表也包括⼏个主要部分:Report Header,Page Header,Group Header,Detail,Group Footer,Page Footer和Report Footer共7个部分。

,除此之外,我们还可以添加Detail Report,并同时添加与此相对应的Report Header/Footer。

借助此功能可以实现多个Heaer与多个Detail相互交叉的效果! ⼀. 常见总结 CalculatedFile: 既可以⽤来计算两个Field/Parameter的值,也可以增加条件判断。

在创建后Calculated Field之后,右键CalculatedField->Edit Expression,在打开的窗⼝中,可以看到其提供了许多丰富的功能,如:加,减,乘,除及合计等等常见功能! Detail Report: 相当于⼀个新的report page,它可以有⾃⼰的ReportHeader,Detail及ReportFooter。

有了Detail Report就意味着我们可以更加灵活地交叉多个Header与Detail⽽不⽤去使⽤Sub Report。

Sytle/Odd Style/Even Style:新建并批量使⽤样式。

以XRLabel为例,可以在其Style属性中新建多个样式,如果当前Report页⾯中其他的XRLabel如果再使⽤相同的样式时,只需要从样式列表中选择相应的样式即可,减少了重复设置相同属性的繁琐过程! Page Number:可以使⽤XRPageInfo控件。

如要显⽰为:1 OF 1,则需要设置XRPageInfo控件的属性PageInfo为NumberOfTotal,且须将Format设置为:{0} OF {1}! FormattingRules:主要通过对条件的设定来控制当前Band的显⽰隐藏及颜⾊等的变化! Landscape: 在设计report时,主要⽤来修改report的布局,即横向或纵向。

DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)

DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)

DevExpress使⽤教程:GridView经验⼩结(官⽅中⽂⽂献经典资料技巧)下⾯是笔者⾃⼰总结的使⽤ DevExpress Gridview 的⼀些经验⼩结,分享给⼤家:1、去除 GridView 头上的 "Drag a column header here to group by that column"--> 点击 Run Designer -> 找到:OptionView -> 将 ShowGroupPanel :设置为 false ;2、如何显⽰出 GridView ⾃带的搜索功能--> 点击 Run Designer -> 找到: OptionsFind -> 将AlwaysVisible :设置为 True3、如何将GridView的⼤⼩⾃适应窗体的⼤⼩--> 右键 GridView 控件 -> 属性 -> 找到 Dock :设置为 Fill4、当GridView数据源发⽣变化时,如何更改GridView所"绑定的值"Code注:其实就是重新创建了⼀个GridView的实例。

gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl1);gridControl1.MainView = gridView1;gridView1.OptionsView.ShowGroupPanel = false;gridView1.OptionsFind.AlwaysVisible = true;gridControl1.DataSource = dt;5、在GridControl 中添加checkbox复选框--> gridView -> run designer -> columns -> 添加⼀列(如果没有的话) 然后如图设置-- > 另外当我们需要动态绑定grid数据时,DataTable 中列的名字要和我们在gridview中设置的FileName名字要移植,不然数据是显⽰不出来的。

devexpress treelist的用法

devexpress treelist的用法

devexpresstreelist的用法一、概述DevExpressTreelist控件是一款强大的TreeList控件,它提供了丰富的功能和灵活的配置选项,可以方便地展示和管理列表数据。

在DevExpress控件库中,Treelist控件适用于各种应用程序,如项目管理、文件系统、数据库管理等。

二、基本用法1.添加控件到窗体:在窗体设计器中,将DevExpressTreelist控件拖放到窗体上。

2.配置数据源:使用Treelist控件的数据源属性,设置要展示的数据。

可以连接数据库、读取数据文件或使用数据集对象作为数据源。

3.配置列:通过设置列属性,可以自定义列的显示方式、排序规则和数据类型。

4.展开和折叠节点:使用鼠标或键盘,可以展开和折叠TreeList控件中的节点,以查看更多细节。

5.搜索和过滤:Treelist控件提供了搜索和过滤功能,可以快速定位所需数据。

三、常用操作1.添加和删除节点:可以使用手动方式或编程方式,添加和删除TreeList控件中的节点。

2.编辑节点数据:在TreeList控件中选中节点后,可以编辑节点的数据。

3.复制和移动节点:可以使用复制和移动功能,方便地复制和转移节点。

4.排序和筛选:通过设置排序规则和筛选条件,可以按照指定方式展示TreeList控件中的数据。

四、高级用法1.自定义外观:通过设置TreeList控件的外观属性,可以自定义节点的样式、颜色、字体等。

2.实现自定义操作:可以使用事件处理程序或编程方式,实现自定义的操作,如节点展开时的动画效果、节点的拖拽和放置等。

3.集成其他控件:可以将Treelist控件与其他DevExpress控件集成,实现更复杂的功能和界面。

五、示例代码以下是一个简单的示例代码,展示如何使用DevExpressTreelist控件展示数据:```csharp//创建TreeList控件并设置数据源TreeList1.DataSource=myDataSet;//配置列属性TreeList1.Columns["Column1"].Visible=true;TreeList1.Columns["Column2"].Visible=false;TreeList1.Columns["Column3"].DataFormatString="integer";//展开节点时执行自定义操作TreeList1.BeginInit();TreeList1.Nodes["Node1"].BeginEdit();TreeList1.Events.NodeAfterCheck+=newDevExpress.XtraTreeList.NodeAft erCheckEventHandler(TreeList1_NodeAfterCheck);TreeList1.EndInit();//实现自定义操作代码voidTreeList1_NodeAfterCheck(objectsender,DevExpress.XtraTreeList.N odeAfterCheckEventArgse){//处理节点选中事件,根据需要执行相应操作}```六、总结DevExpressTreelist控件是一款功能强大的TreeList控件,提供了丰富的功能和灵活的配置选项。

DevExpress控件使用详细说明

DevExpress控件使用详细说明

界面规范[V1.0]拟制人______________________审核人______________________批准人______________________[二零零七年二月二十六日]日期作者版本备注2007/04/05 范拥华 1.0.0Created by fanco Page 1 of 49 Created on 4/25/2022 3:17:00 AM目录1规范性 (4)2系统颜色、字体、图标 (4)2.1设计参考 (4)3FORM控件布局与间距 (5)3.1设计参考 (5)4对齐设置 (6)4.1设计参考 (6)5BARMANAGER控件 (6)5.1实现效果 (6)6菜单 (8)6.1设计参考 (8)6.2实现效果 (8)6.3操作步骤 (8)6.4实现代码 (9)7工具栏 (10)7.1设计参考 (10)7.2实现效果 (10)7.3操作步骤 (10)8STATUSBARS控件 (11)8.1设计参考 (11)8.2实现效果 (11)8.3操作步骤 (11)9控件 (11)9.1网格控件 (11)9.1.1GridControl (11)9.1.1.1GridControl描述 (11)9.1.1.2GridControl特殊属性 (17)9.1.2GridView (22)9.1.2.1实现效果 (23)9.1.2.2操作步骤 (23)9.1.2.3属性设置 (23)9.1.3CardView (23)9.1.3.1实现效果 (24)9.1.3.2操作步骤 (24)9.1.3.3CarView属性设置 (24)9.1.4BandedGridView (25)9.1.4.1实现效果 (25)9.1.4.2操作步骤 (25)9.1.4.3实现代码 (26)9.1.4.4属性设置 (26)9.1.4.5ColumnEdit列 (26)9.1.5AdvBandedGridView (27)9.1.5.1实现效果 (28)Created by fanco Page 2 of 49 Created on 4/25/2022 3:17:00 AM9.1.5.2操作步骤 (28)9.1.5.3实现代码 (28)9.1.5.4属性设置 (29)9.2X TRA L AYOUT控件 (29)9.2.1特性 (29)9.2.2实现效果 (29)9.2.3操作步骤 (29)9.3X TRA T AB控件 (30)9.3.1设计参考 (30)9.3.2效果及代码 (30)9.4P IVOT G RID控件 (30)9.4.1实现效果 (31)9.4.2操作步骤 (31)9.5X TRA T REE L IST控件 (32)9.5.1实现效果 (34)9.5.2操作步骤 (34)9.5.3实现代码 (36)9.5.4属性设置 (37)9.6L OOK U P E DIT控件 (37)9.6.1实现效果 (37)9.6.2操作步骤 (37)9.7G RID L OOK U P E DIT控件 (39)9.7.1设计参考 (39)9.7.2实现效果 (39)9.7.3操作步骤 (39)9.8G RID P RINT控件 (41)9.8.1实现效果 (42)9.9B UTTON控件 (44)9.9.1设计参考 (44)9.10C HECK B OX控件 (45)9.10.1设计参考 (45)9.11G ROUP B OX控件 (45)9.11.1设计参考 (45)9.12L ABEL控件 (45)9.12.1设计参考 (45)9.13LIST B OX控件 (45)9.13.1设计参考 (45)9.14L IST V IEW控件 (46)9.14.1设计参考 (46)10界面输入控制 (46)10.1设计参考 (46)11弹出子窗体 (46)11.1设计参考 (46)12消息框设置 (46)12.1设计参考 (46)13向导使用原则 (47)13.1设计参考 (47)Created by fanco Page 3 of 49 Created on 4/25/2022 3:17:00 AM14TAB键和快捷键设置 (47)14.1设计参考 (47)15系统响应时间 (48)15.1设计参考 (48)16登陆窗体与主界面 (48)16.1设计参考 (48)17系统帮助设置 (49)17.1设计参考 (49)18附录 (49)1规范性通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具箱、状态栏、滚动条、右键快捷菜单”的标准格式,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。

DevExpress控件使用方法:第一篇gridControl详解

DevExpress控件使用方法:第一篇gridControl详解

DevExpress控件使用方法:第一篇gridControl详解GridControl(1)层次设计器有五种视图模式,banded gridview多行表头,数据还是一行一组,最靠近数据的表头与数据一一对应;advanced banded gridview 多行表头,数据可以多行一组;cardview 一个卡片是一组数据,其中左侧是标题,右侧是数据;layout view是card view的集合,布局可以自定义(2)视图视图的层次结构视图属性:可通过GridControl.Views访问所有视图。

可通过ColumnView.Columns访问当前视图的所有列(3)设计器(层次设计器中点击Run Designer可调出)设计器有四大功能:①主要功能的设计;②选择外观;③可以选择多个视图,内嵌编辑器的设置;④打印功能的设置① View:(a)Option:OptionsBehavior可以设置行为(是否允许新增行/是否允许删除行/是否允许编辑/是否允许展开所有分组)OptionsCustomization(是否允许排序/分组/过滤/列的移动/列的大小的调整)OptionsDetail(设置从表的属性)、OptionsFilter(过滤属性的设置)OptionsView(显示或隐藏某些东西,比如标题行)(b)AppearancePrint : (行高…)Columns://列的相应的属性FeatureBrowser://设置事件,Grid的绑定、列的绑定(有方法提示),什么都可以设置Layout:设置布局Group Summary Items添加分组统计② Appearance:Appearances可设置行的外观Format Conditions条件样式Style Schemes可设置主题(比较方便)③ RepositoryView Repository设计视图,与①差不多In-place Editor Repository内嵌编辑器④ Printing(4)gridControl:给该列添加组件(如按钮) 三种方法法一:打开设计器(Run Designer),选择左侧Repository,点击In-place Editor Repository(内嵌编辑器),点击Add右侧的下拉菜单,选择你想添加的控件,比如ComboBoxEdit,再在右侧编辑控件的属性,ComboBox的话就可以设置Data下的Items集合,然后点左侧Main里的Columns,点你想在上头添加控件的列,找右侧Data 下的ColumnEdit,点最右边的下拉菜单,点Existing左侧的加号,就能找到你刚才的控件,添加。

DevExpress控件常用属性讲解

DevExpress控件常用属性讲解
allowhtmltext允许html网页标记只识别一级html标记并且是那种改变字体样式的标记autopopdelay弹出的提示延时毫秒initialdelay首次弹出延时毫秒rounded是否用圆角提示框roundradius圆角半径1到15最圆showbeak显示尖角提示框tooltiplocation提示框出现位置tooltiptype提示框样式默认是标准只有标题和内容supertip可设置头部内容和底部样式添加图片等
:图片下拉控件,ShowIcon 显示图标,指定 Images 可显示 自定义图标(只能是图片集索引 0 的图标),一般用 Buttons 触发打开图片 事件,来改变显示的 Image
:文本下拉控件,ScrollBars 显示滚动条样式
PopupBaseAutoSearchEdit: LookUpEditBase:
Designer添加菜单,绑定的面板配合
一起使用;
BottomPaneControlContainer绑定底部面板,RightPaneControlContainer绑定右边面 板,ShowRightPane为True,RightPaneWidth最小宽度240
是否可改变面板大小
:弹出面板控件,ShowCloseButton显示关闭按钮,ShowSizeGrip
:超链接控件,OpenLink 事件,打开网页 BaseSpinEdit:
:转动控件,Increment 增量大小,最大值 MaxValue 最小值 MinValue, SpinButtonIndex 是多个按钮时 Spin 按钮索引,SpinStyle 转动按钮方向
:时间控件,EditMask 设置时间格式
可以有更多的皮肤样式选择),RibbonStyle 默认是 Office2007 风格,Office2010 风格菜单右边 有一小箭头,可将菜单收起;都由 ItemClick 事件触发

DevExpress控件学习

DevExpress控件学习

DevExpress 控件学习1. MDI 窗体首先需要把父窗体设置为MDI 容器:在主窗体放一个xtraTabbedMdiManager ,如:设置MDI 窗体样式;新建一子窗体,可以是DevExpress 的也可以是VS 自带的(VS 自带的最好改下背景色为如下配置,否则会主子窗体颜色不搭配。

)调用子窗体的代码如下:///<summary> ///打开子窗体 ///</summary>///<param name="frm"></param>privatevoid OpenChildForm(Form frm) {int iCount = 0;foreach (var mdiChild inthis .MdiChildren){子窗体关闭按钮的样式多个标签的时候,如何显示标签导航栏MDI 子窗体标签栏的位置if (mdiChild.Text == frm.Text){mdiChild.Activate();iCount++;}}if (iCount> 0)return;frm.MdiParent = this;frm.Show();}privatevoid btnMqClient_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e){Text = e.Link.Item.Caption;if (e.Link.Item.Tag != null){object ooo = e.Link.Item.Tag;}FrmOutLook frm = new FrmOutLook();OpenChildForm(frm);}如果不想关闭子画面,则在子画面窗体上选择属性ControlBox关闭:2.OutLook导航条用法:选中navBarGroup1,在属性栏中选择GroupStyle,可以调整图标显示样式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

devexpress控件学习总结z1、Navigation &amp; Layout1.1 Bar Manager如果想在窗体或用户控件(user control)上添加工具条(bars)或弹出菜单(popup menus),我们需要把一个不可见的控件(component)BarManager(Navigation&amp;Layout)拖放到这个窗体或用户控件上。

这个控件维护工具条在窗体上的布局,处理用户的行为(processes an end-user's actions),提供一些定制功能等等。

这个控件维护工具条、工具条项、工具条项目录这三者的集合(It maintains the collections of bars,bar items and bar item categories.)。

所以我们可以使用bar manager的一些方法去添加、删除、访问这些工具条元素。

注意:1)一个窗体上只能放置一个bar manager控件。

2)由于BarManager控件与RibbonControl控件可能会彼此冲突,所以不推荐在同一个窗体或用户控件上同时使用工具条和Ribbon控件。

当把BarManager添加到一个窗体或用户控件上后,我们就可以使用上下文菜单(context menus)、bar manager的定制窗口或它的设计器来创建工具条和工具条命令(bar commands)了。

相关控件属性1.1.2、Toolbars工具条是一个可视的控件,它用来显示各个项目链接。

我们可以在工具条内显示由XtraBars库提供的任意项目链接,比如:按钮(buttons),静态文本(static text),子菜单(submenu)、编辑器(editors)等等。

1.1.3、Bar Items为了把多种元素(比如按钮,子菜单,标签,编辑器等)添加到工具条和菜单,我们需要创建合适的bar items。

一个bar item是一个实现了特定功能的非可见对象。

它定义了一个相应的元素如何显示在屏幕上,并决定了对鼠标单击事件的相应。

我们可以使用bar manager的Customize窗体上的Commands页来创建bar items。

为了在逻辑上组织这些item,我们经常将它们分类。

该窗体的左侧面板里显示了有效的目录,右侧面板显示了属于当前选中目录的各个bar item。

选中一个bar item可以在属性窗口看到其属性。

1.1.4、Popup Menus使用弹出菜单(popup menus),我们可以在控件上显示上下文选项或命令。

弹出菜单是一个显示了特定项的窗体,用户可以选择这些项以执行相应的操作。

使用PopupMenu控件就可以在我们的应用程序中使用弹出菜单。

通过BarManager的“名称”+“上的PopupContenxtMenu”属性绑定PopuMenus控件注意:在定制和使用popup menu之前,向窗体上添加一个bar manager并确保这个popup menu绑定了这个bar manager。

默认情况下,在设计时(at design time)添加到窗体的弹出菜单会自动地寻找窗体内的bar manager,如果找到的话,会通过PopupMenu.Manager属性将其绑定到bar manager。

如果没有自动绑定到bar manager,那就通过PopupMenu.Manager属性手动绑定。

1.1.5、CategoriesXtraBars允许我们将bar items在逻辑上划分为不同的类别(categories)。

每个类别都是一组item,并且每个item都只属于一个类别(category)。

类别不会对该类的item附加任何约束,分类只是为了对item进行有组织的访问。

用BarManagerCategory类表示一个类别。

我们通过BarManager.Categories集合来添加、移除、存取类别。

使用BarItem.Category属性,我们可以为每个item分配一个类别。

1.1.6、Bar Dock Controls工具条停放控件(bar dock controls)是工具条(toolbar)的容器,它们位于窗体或用户控件内用以容纳工具条对象。

有regular和standalone两种工具条停放控件。

regular bar dock controls是由BarManager自动维护的,我们不用手动去创建它们。

它们停靠在容器(比如窗体)的任意一边,以显示工具条。

BarManager中的StandaloneBarDockControl属性用来在窗体内的任何位置显示工具条。

我们需要手动绑定StandaloneBarDockControl控件1.1.6.1 Regular Bar Dock Controls当工具条停靠于容器(比如form)的任意一边时,regular bar dock controls将工具条的停靠位置显示出来。

当创建Bar Manager时,它会自动创建4个regular dock controls,并将它们停靠在窗体的相应边缘。

只有当一个工具条停放在一个dock control上时,这个dock control才是可见的。

其他情况下,dock control 的宽度都是0。

当将工具条拖动到窗体的任意一边时,相应的dock controls会容纳并显示这个工具条。

Bar.CanDockStyle属性可以指定工具条的可能停放位置。

一般情况下,在应用程序中是没有必要去改变regular dock controls的属性的。

除非我们想要为停靠的工具条提供背景设置。

Bar Manager会自动创建名为barDockControl1...barDockControl4的4个dock controls。

每个dock control都是一个BarDockControl类。

在设计时,我们通过在属性窗口选择相应的对象来访问dock control。

此外,如果dock control是可见的,并且没有完全被工具条覆盖,我们可以单击选中它,以在属性窗口中显示它。

1.1.6.2 Standalone Bar Dock ControlsStandalone bar dock controls允许工具条停靠在窗体或用户控件上的任意位置,而不仅仅是窗体的边缘。

创建一个StandaloneBarDockControl对象并且将工具条添加到其上就能做到这种效果。

像regular control一样,standalone bar dock controls可以在窗体或用户控件中随意放置。

它们的Dock、Location和Size属性用来指定布局设置。

StandaloneBarDockControl.AutoSize属性用来启用自动调整大小模式。

在这种模式下,当向该控件添加或删除工具条时,该控件的大小是自动变化的。

使用Standalone bar dock controls的前提是该窗体或用户控件上已添加了BarManager控件。

如果我们以编码的方式创建了StandaloneBarDockControl对象,那么我们就需要手动将其添加到BarManager的BarManager.DockControls集合中。

1.2 Bar Manager 的使用1.2.1 Toolbars Customization为了在窗体上创建bar和bar items,我们需要往窗体上添加一个BarManager控件。

1.2.1.1 creating bars and bar items on the form at design time在设计时(at design time),当把BarManager添加到窗体上后,会自动创建三个空工具条,分别是:窗体顶部的主菜单栏、工具栏和窗体底部的状态栏。

主菜单栏通常是一个位于窗体顶部的工具条,其他的工具条不能和主菜单栏位于同一行。

终端用户也不能关闭主菜单栏。

默认情况下,用户可以拖拽主菜单栏,将其停靠至窗体的任意边缘。

主菜单栏被赋予至BarManager.MainMenu 属性。

状态栏通常是一个位于窗体底部的工具条。

用户不能拖动该工具条。

BarManager.StatusBar属性赋值为该状态栏。

在一个窗体上只有一个主菜单和一个状态栏。

默认情况下,工具条上有[Add]上下文链接(context links)。

通过该链接,我们可以将bar items添加到工具条上。

我们可以单击[Add]链接来激活bar item列表,然后从中选择需要的bar item。

选择一个item后,它即被添加到工具条上,同时文本编辑器也被激活。

在此文本编辑器里我们可以编辑新添加项的名字。

按Enter键来结束编辑和该项的添加。

如果我们要添加一个子菜单(submenu),那么先选择sub-menu以添加菜单项,然后再次单击它,并通过[Add]添加新的bar item。

若想在设计时隐藏[Add]上下文链接,右击BarManager 控件,然后勾去“show design time enhancements"选项即可。

勾选这个选项,[Add]链接又会出现。

1.2.1.2 creating bars and bar items using the customization window右击鼠标,使用BarManager的Customization窗口是向窗体添加工具条和bar items的另一种方式。

1)Manipulate Bars切换到Customization窗口的Toolbars页,单击new,即可添加工具条。

选择工具条列表中的一个,点击delete,即可删除该工具条。

只有在运行时,Rename和Reset按钮才处于激活状态。

2)Adding Bar Items切换到Commands页,点击modify按钮,然后选择Add 菜单项,Add New BarItem对话框就会出现。

在该对话框里,我们可以指定该项的分类、名字、标题(caption)等。

当新的item创建后,我们就可以把它拖放到工具条上。

1.2.1.3 creating bars using the barmanager's designer BarManager的设计器也是用来添加、删除、自定义设置工具条的一种方式。

切换到Toolbars页,单击Add New Toolbar 和Delete Toolbar按钮即可创建或删除工具条。

1.2.1.4 customizing items and links at design time在设计时,当你选择一个链接(link),它就会在属性窗口中显示相应item的设置;如果改变这个item的外观设置(appearance setting)就会影响到该item的所有属性没有显性设置的链接。

相关文档
最新文档