DevExpress 的 10 个使用技巧
DevExpress 是非常主流的.NET 控件,目前全世界和中国都用很多用户使用,不过由 于是英文版,初次接触的同学可能会觉得困难,这里就总结 DevExpress 常见的 10 个使 用技巧。 1.TextEditor(barEditItem)取文本
以下是代码片段: string editValue = barEditItem1.EditValue.ToString(); //错误, 返回 null string editValue = ((DevExpress.XtraEditors.TextEdit)barEditItem).EditValue.ToString(); //精确,返回文本框内容 DevExpress 使用技巧
2.ComboBoxEdit(barEditItem)添加
以下是代码片段: Item string item = "comboboxItem1"; ((DevExpress.XtraEditors.Repository.RepositoryItemComboBox)this.barEd itItem.Edit).Items.Add(item);
3.ComboBoxEdit(barEditItem)取文本
以下是代码片段: string itemValue = this.barEditItem.EditValue.ToString();
4.Ribbon 控件
以下是代码片段: //添加 Page DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage = new RibbonPage(); ribbonControl.Pages.Add(ribbonPage); //添加 Group DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup = new RibbonPageGroup(); ribbonPage.Groups.Add(ribbonPageGroup); //添加 Button DevExpress.XtraBars.BarButtonItem barButtonItem = new BarButtonItem(); ribbonPageGroup.ItemLinks.Add(barButtonItem); // 添加 barSubItem DevExpress.XtraBars.BarSubItem barSubItem = new BarSubItem(); ribbonPageGroup.ItemLinks.Add(barSubItem); //barSubItem 下添加 Button barSubItem.AddItem(barButtonItem); //奇 异的删除 Page 问题( DevExpress 使用技巧) while (this.ribbonControl.Pages.Count > 0) { ribbonControl.Pages.Remove(ribbonControl.Pages[0]); //调试正常, 运转报异常 } while (this.ribbonControl.Pages.Count > 0) { ribbonControl.SelectedPage = ribbonControl.Pages[0]; ribbonControl.Pages.Remove(ribbonControl.SelectedPage); //运转正 常 } //遏止 F10 键 Tips (DevExpress 使用技巧)
ribbonControl.Manager.UseF10KeyForMenu = false; //DX 按钮 ApplicationIcon 属性改动图标右键 Add ApplicationMenu 添加 evExpress.XtraBars.Ribbon.ApplicationMenu
5.HitInfo
以下是代码片段: //在 Tab 页上点击右键的工作响应(DevExpress 使用技巧) void xtraTabbedMdiManager_Event(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right && ActiveMdiChild != null) { DevExpress.XtraTab.ViewInfo.BaseTabHitInfo hInfo = xtraTabbedMdiManager.CalcHitInfo(e.Location); //右键点击位置:在 Page 上且不在封闭按钮内 if (hInfo.IsValid && hInfo.Page != null && !hInfo.InPageCloseButton) { this.popupMenu.ShowPopup(Control.MousePosition);//在鼠标位置弹 出,而不是 e.Location } } } //在 ribbon 上点击右键的工作响应 private void ribbonControl1_ShowCustomizationMenu(object sender, RibbonCustomizationMenuEventArgs e) { //禁掉原系统右键菜单 e.ShowCustomizationMenu = false; //右键位置:在 barButtonItem 上 if (e.HitInfo != null && e.HitInfo.InItem && e.HitInfo.Item.Item is BarButtonItem) { this.popupMenu.ShowPopup(Control.MousePosition); } //右键位置: barSubItem 中的 barButtonItem 上 else if (e.Link != null 在 && e.Link.Item != null && e.Link.Item is BarButtonItem) { this.popupMenu.ShowPopup(Control.MousePosition); } }
6.皮肤
以下是代码片段: //添加皮肤轨范集后注册皮肤( DevExpress 使用技巧) DevExpress.UserSkins.OfficeSkins.Register(); DevExpress.UserSkins.BonusSkins.Register(); //设置皮肤 DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Liquid Sky"); //若皮肤称号错误
则按系统默许设置(第一个皮肤) //GalleryFilterMenuPopup 工作设置弹出选择菜单的“All Groups”为中文 private void rgbiSkins_GalleryFilterMenuPopup(object sender, GalleryFilterMenuEventArgs e) { e.FilterMenu.ItemLinks[n].Caption = " 一切皮肤"; //n=分组数+1 } //GalleryInitDropDownGallery 工作设置弹出 皮肤列表的表头“ALL Groups”为中文 private void rgbiSkins_GalleryInitDropDownGallery(object sender, InplaceGalleryEventArgs e) { e.PopupGallery.FilterCaption = "一切皮 肤"; }
7.dockManager 将视图的状况信息保管到 xml 文件 dockManager1.SaveLayoutToXml("..\\UserConfig\\l"); 导出 xml 中
保管的状况信息 dockManager1.RestoreLayoutFromXml("..\\UserConfig\\l"); 8.barManager 设置 bar 的字体与系统字体 barAndDockingController1.AppearancesBar.ItemsFont = new Font(this.Font.FontFamily, currentFontSize); 9.设置系统字体
以下是代码片段: DevExpress.Utils.AppearanceObject.DefaultFont = new Font(this.Font.FontFamily, currentFontSize);
以下是代码片段: private void treeList1_MouseDown(object sender, MouseEventArgs e) { if (e.Button
== MouseButtons.Right) { DevExpress.XtraTreeList.TreeListHitInfo hi = treeList1.CalcHitInfo(e.Location); if (hi.Node != null && hi.Node.ImageIndex == 5) //叶子节点的 ImageIndex == 5 { TreeListNode node = treeList1.FindNodeByID(hi.Node.Id); treeList1.FocusedNode = node; this.popupMenu1.ShowPopup(MousePosition); } } }
优秀的菜单控件 DevExpress Bar 使用初探
前一阵子在做项目时,用到了 Develper Experss Inc. 的 DevExpress Bar 控件,感觉它真 是一个好东西,可以完全取代 Delphi 现有的 Menu 控件和 ToolBar 控件,其功能也是第三方 控件中的佼佼者。故在此写一点点自己的所得和体会,希望能够对各位朋友有所帮助。 DevExpress Bar 安装后,控件栏新添了 ExpressBars 页:
我们使用的主要是第二个 dxBarManager 控件。这里,以建立一个含有菜单和快捷工具 栏的应用程序为例。 新建工程,将其放置到 Form1 上如图:
editor bar
双击该控件,出现设置窗口(如下图)。所有的设置均是在该窗口中完成的。
可以看到,设置窗口分成若干个 Tab 页面,来进行不同的设置。Toolbars 页面的目的是 设置不同的工具条。由于我们要建立菜单和快捷工具栏,所以点击“New”(如图),加入 两个 ToolBar,分别命名为 MenuBar 和 FastBar。
加入后,设置窗口如图:
可以注意到, 加入工具条后, Form1 上出现了两个浮动工具条。 这就是我们刚刚加入的, 它具有浮动的功能,并且初始状态时浮动状态:
将鼠标指向工具条,按住左键并移动,可以将其停靠到 Form 的任一边缘。我们将 MenuBar 停靠到最上方,FastBar 停靠到 MenuBar 的下方:
这只是一个空壳子。 下面我们加入菜单: 双击 dxBarManager 控件, 打开 Commands 页, 在右侧右键点击鼠标,出现如图弹出菜单。选择其中的 Add。