DevExpress的10个使用技巧.docx
- 文档编号:9615498
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:17
- 大小:152.89KB
DevExpress的10个使用技巧.docx
《DevExpress的10个使用技巧.docx》由会员分享,可在线阅读,更多相关《DevExpress的10个使用技巧.docx(17页珍藏版)》请在冰豆网上搜索。
DevExpress的10个使用技巧
DevExpress的10个使用技巧
作者:
路灯下的诗人, 出处:
博客, 责任编辑:
valen,
2010-09-0607:
58
DevExpress是非常主流的.NET控件,目前全世界和中国都用很多用户使用,不过由于是英文版,初次接触的同学可能会觉得困难,这里就总结DevExpress常见的10个使用技巧……
DevExpress是非常主流的.NET控件,目前全世界和中国都用很多用户使用,不过由于是英文版,初次接触的同学可能会觉得困难,这里就总结DevExpress常见的10个使用技巧。
1.TextEditor(barEditItem)取文本
以下是代码片段:
stringeditValue=barEditItem1.EditValue.ToString();//错误,返回nullstringeditValue=((DevExpress.XtraEditors.TextEdit)barEditItem).EditValue.ToString();//精确,返回文本框内容DevExpress使用技巧
2.ComboBoxEdit(barEditItem)添加
以下是代码片段:
Itemstringitem="comboboxItem1";((DevExpress.XtraEditors.Repository.RepositoryItemComboBox)this.barEditItem.Edit).Items.Add(item);
3.ComboBoxEdit(barEditItem)取文本
以下是代码片段:
stringitemValue=this.barEditItem.EditValue.ToString();
4.Ribbon控件
以下是代码片段:
//添加PageDevExpress.XtraBars.Ribbon.RibbonPageribbonPage=newRibbonPage();ribbonControl.Pages.Add(ribbonPage);//添加GroupDevExpress.XtraBars.Ribbon.RibbonPageGroupribbonPageGroup=newRibbonPageGroup();ribbonPage.Groups.Add(ribbonPageGroup);//添加ButtonDevExpress.XtraBars.BarButtonItembarButtonItem=newBarButtonItem();ribbonPageGroup.ItemLinks.Add(barButtonItem);//添加barSubItemDevExpress.XtraBars.BarSubItembarSubItem=newBarSubItem();ribbonPageGroup.ItemLinks.Add(barSubItem);//barSubItem下添加ButtonbarSubItem.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属性改动图标右键AddApplicationMenu添加evExpress.XtraBars.Ribbon.ApplicationMenu
5.HitInfo
以下是代码片段:
//在Tab页上点击右键的工作响应(DevExpress使用技巧)voidxtraTabbedMdiManager_Event(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Right&&ActiveMdiChild!
=null){DevExpress.XtraTab.ViewInfo.BaseTabHitInfohInfo=xtraTabbedMdiManager.CalcHitInfo(e.Location);//右键点击位置:
在Page上且不在封闭按钮内if(hInfo.IsValid&&hInfo.Page!
=null&&!
hInfo.InPageCloseButton){this.popupMenu.ShowPopup(Control.MousePosition);//在鼠标位置弹出,而不是e.Location}}}//在ribbon上点击右键的工作响应privatevoidribbonControl1_ShowCustomizationMenu(objectsender,RibbonCustomizationMenuEventArgse){//禁掉原系统右键菜单e.ShowCustomizationMenu=false;//右键位置:
在barButtonItem上if(e.HitInfo!
=null&&e.HitInfo.InItem&&e.HitInfo.Item.ItemisBarButtonItem){this.popupMenu.ShowPopup(Control.MousePosition);}//右键位置:
在barSubItem中的barButtonItem上elseif(e.Link!
=null&&e.Link.Item!
=null&&e.Link.ItemisBarButtonItem){this.popupMenu.ShowPopup(Control.MousePosition);}}
6.皮肤
以下是代码片段:
//添加皮肤轨范集后注册皮肤(DevExpress使用技巧)DevExpress.UserSkins.OfficeSkins.Register();DevExpress.UserSkins.BonusSkins.Register();//设置皮肤DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("LiquidSky");//若皮肤称号错误则按系统默许设置(第一个皮肤)//GalleryFilterMenuPopup工作设置弹出选择菜单的“AllGroups”为中文privatevoidrgbiSkins_GalleryFilterMenuPopup(objectsender,GalleryFilterMenuEventArgse){e.FilterMenu.ItemLinks[n].Caption="一切皮肤";//n=分组数+1}//GalleryInitDropDownGallery工作设置弹出皮肤列表的表头“ALLGroups”为中文privatevoidrgbiSkins_GalleryInitDropDownGallery(objectsender,InplaceGalleryEventArgse){e.PopupGallery.FilterCaption="一切皮肤";}
7.dockManager
将视图的状况信息保管到xml文件dockManager1.SaveLayoutToXml("..\\UserConfig\\ViewInfo.xml");导出xml中保管的状况信息dockManager1.RestoreLayoutFromXml("..\\UserConfig\\ViewInfo.xml");
8.barManager
设置bar的字体与系统字体barAndDockingController1.AppearancesBar.ItemsFont=newFont(this.Font.FontFamily,currentFontSize);
9.设置系统字体
以下是代码片段:
DevExpress.Utils.AppearanceObject.DefaultFont=newFont(this.Font.FontFamily,currentFontSize);
10.treeView
为tree节点加右键菜单并选中该节点
以下是代码片段:
privatevoidtreeList1_MouseDown(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Right){DevExpress.XtraTreeList.TreeListHitInfohi=treeList1.CalcHitInfo(e.Location);if(hi.Node!
=null&&hi.Node.ImageIndex==5)//叶子节点的ImageIndex==5{TreeListNodenode=treeList1.FindNodeByID(hi.Node.Id);treeList1.FocusedNode=node;this.popupMenu1.ShowPopup(MousePosition);}}}
优秀的菜单控件DevExpressBar使用初探
前一阵子在做项目时,用到了DevelperExperssInc. 的DevExpressBar控件,感觉它真是一个好东西,可以完全取代Delphi现有的Menu控件和ToolBar控件,其功能也是第三方控件中的佼佼者。
故在此写一点点自己的所得和体会,希望能够对各位朋友有所帮助。
DevExpressBar安装后,控件栏新添了ExpressBars页:
我们使用的主要是第二个dxBarManager控件。
这里,以建立一个含有菜单和快捷工具栏的应用程序为例。
新建工程,将其放置到Form1上如图:
双击该控件,出现设置窗口(如下图)。
所有的设置均是在该窗口中完成的。
可以看到,设置窗口分成若干个Tab页面,来进行不同的设置。
Toolbars页面的目的是设置不同的工具条。
由于我们要建立菜单和快捷工具栏,所以点击“New”(如图),加入两个ToolBar,分别命名为MenuBar和FastBar。
加入后,设置窗口如图:
可以注意到,加入工具条后,Form1上出现了两个浮动工具条。
这就是我们刚刚加入的,它具有浮动的功能,并且初始状态时浮动状态:
将鼠标指向工具条,按住左键并移动,可以将其停靠到Form的任一边缘。
我们将MenuBar停靠到最上方,FastBar停靠到MenuBar的下方:
这只是一个空壳子。
下面我们加入菜单:
双击dxBarManager控件,打开Commands页,在右侧右键点击鼠标,出现如图弹出菜单。
选择其中的Add。
在弹出的窗口(如图)中,Type选择TdxBarSubItem,这是一个能够放置其它种类按钮的容器。
Caption置为标题。
这里设成“文件”
确定后,可以看到其加入了Command:
中
但是,它并没有加入到Form上。
用鼠标左键点中上图中的“文件”,按住不放,将其拖放到Form1的MenuBar中:
(在拖动的过程中,鼠标的形状为一个小矩形右下角一个x,当移动到能够放置的位置时x变成+表示能够加入)
接下来,加入“文件”下的各个按钮。
还是在Command页右侧右击鼠标,
Type不用变,Caption设置为New。
确定后,New出现在Commands中。
还是选中New,将其拖放到Form上的MenuBar的File中。
当拖至File时,File自动弹开,将New放置到弹开的空白处即可。
其结果如右图。
同理,可以加入其它的菜单项,如Save、SaveAs、Close等等。
处理完了文件菜单,可以同样加入Edit等等菜单。
这样,我们就构建了菜单。
下一步是购建快捷工具栏。
同样,还是双击dxBarManager控件,打开Commands页,右击,选取Add。
不过这时的Type选择TdxBarLargeButton。
确定后,再将其从Commands页拖动到FastBar上:
一个快捷按钮就做好了。
同理加入其它的。
这时可以发现,快捷按钮没有图标,很难看。
解决它:
加入一个ImageList,再向其中加入相应的图片,选中dxBarManager1,将其LargeImages属性设置为刚刚加入的ImageList,再点中上图中的Save按钮,就可以在其LargeImageIndex下拉条中选择图标了。
同样可以为MenuBar的项目设置图标:
同样加入一个ImageList,再向其中加入相应的图片,选中dxBarManager1,将其Images属性设置为刚刚加入的ImageList,点中上图中的“文件”,再在弹出的菜单项中选择“New”按钮,就可以在其ImageIndex下拉条中选择图标了。
这样,一个含有菜单和快捷工具栏的应用程序的界面部分就差不多了。
剩下的,就是在各个Button的OnClick(或者其它的)Event中编写代码了。
总结一下,实际上dxBarManager控件的简单的开发过程为:
1、 在ToolsBar页中,生成各个ToolBar;
2、 将各个ToolBar拖放到合适的地方;
3、 在Command 页中,加入各种按钮;
4、 将各个按钮拖放的合适的地方(比如ToolBar中或其它容器,例如TdxBarSubItem中)
实际上,在dxBarManager控件中,不仅仅提供了TdxBarButton、TdxBarLargeButton,还提供了用于各种列表、图像、字体的种种按钮,其使用方法同样只需要在dxBarManager控件的Commands页面中生成之后通过拖放就可以了。
当然在使用前还需要设置各自的属性。
本文仅仅简单说明了dxBarManager控件的使用,希望能够起到抛砖引玉的作用,并且希望能够得到各位朋友的批评和指正。
若有问题欢迎共同探讨:
lff0305@(欢迎转载,但作者保留版权)
DevExpress控件使用 收藏
零零散散的先总结一下吧
1.TextEditor(barEditItem)取文本
stringeditValue=barEditItem1.EditValue.ToString();//错误,返回null
stringeditValue=((DevExpress.XtraEditors.TextEdit)barEditItem).EditValue.ToString();//正确,返回文本框内容
2.ComboBoxEdit(barEditItem)添加Item
stringitem="comboboxItem1";
((DevExpress.XtraEditors.Repository.RepositoryItemComboBox)this.barEditItem.Edit).Items.Add(item);
3.ComboBoxEdit(barEditItem)取文本
stringitemValue=this.barEditItem.EditValue.ToString();
4.Ribbon控件
//添加Page
DevExpress.XtraBars.Ribbon.RibbonPageribbonPage=newRibbonPage();
ribbonControl.Pages.Add(ribbonPage);
//添加Group
DevExpress.XtraBars.Ribbon.RibbonPageGroupribbonPageGroup=newRibbonPageGroup();
ribbonPage.Groups.Add(ribbonPageGroup);
//添加Button
DevExpress.XtraBars.BarButtonItembarButtonItem=newBarButtonItem();
ribbonPageGroup.ItemLinks.Add(barButtonItem);
//添加barSubItem
DevExpress.XtraBars.BarSubItembarSubItem=newBarSubItem();
ribbonPageGroup.ItemLinks.Add(barSubItem);
//barSubItem下添加Button
barSubItem.AddItem(barButtonItem);
//奇怪的删除Page问题
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
ribbonControl.Manager.UseF10KeyForMenu=false;
//DX按钮
ApplicationIcon属性改变图标
右键AddApplicationMenu添加evExpress.XtraBars.Ribbon.ApplicationMenu
5.HitInfo
//在Tab页上点击右键的事件响应
voidxtraTabbedMdiManager_Event(objectsender,MouseEventArgse)
{
if(e.Button==MouseButtons.Right&&ActiveMdiChild!
=null)
{
DevExpress.XtraTab.ViewInfo.BaseTabHitInfohInfo=xtraTabbedMdiManager.CalcHitInfo(e.Location);
//右键点击位置:
在Page上且不在关闭按钮内
if(hInfo.IsValid&&hInfo.Page!
=null&&!
hInfo.InPageCloseButton)
{
this.popupMenu.ShowPopup(Control.MousePosition);//在鼠标位置弹出,而不是e.Location
}
}
}
//在ribbon上点击右键的事件响应
privatevoidribbonControl1_ShowCustomizationMenu(objectsender,RibbonCustomizationMenuEventArgse)
{
//禁掉原系统右键菜单
e.ShowCustomizationMenu=false;
//右键位置:
在barButtonItem上
if(e.HitInfo!
=null
&&e.HitInfo.InItem
&&e.HitInfo.Item.ItemisBarButtonItem)
{
this.popupMenu.ShowPopup(Control.MousePosition);
}
//右键位置:
在barSubItem中的barButtonItem上
elseif(e.Link!
=null
&&e.Link.Item!
=null
&&e.Link.ItemisBarButtonItem)
{
this.popupMenu.ShowPopup(Control.MousePosition);
}
}
6.皮肤
//添加皮肤程序集后注册皮肤
DevExpress.UserSkins.OfficeSkins.Register();
DevExpress.UserSkins.BonusSkins.Register();
//设置皮肤
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("LiquidSky");//若皮肤名称错误则按系统默认设置(第一个皮肤)
//GalleryFilterMenuPopup事件设置弹出筛选菜单的“AllGroups”为中文
privatevoidrgbiSkins_GalleryFilterMenuPopup(objectsender,GalleryFilterMenuEventArgse)
{
e.FilterMenu.ItemLinks[n].Caption="所有皮肤";//n=分组数+1
}
//GalleryInitDropDownGallery事件设置弹出皮肤列表的表头“ALLGroups”为中文
privatevoidrgbiSkins_GalleryInitDropDownGallery(objectsender,InplaceGalleryEventArgse)
{
e.PopupGallery.FilterCaption="所有皮肤";
}
7.dockManager
将视图的状态信息保存到xml文件
dockManager1.SaveLayoutToXml("..\\UserConfig\\ViewInfo.xml");
导出xml中保存的状态信息
dockManager1.RestoreLayoutFromXml("..\\UserConfig\\ViewInfo.xml");
8.barManager
设置bar的字体与系统字体
barAndDockingController1.AppearancesBar.ItemsFont=newFont(this.Font.FontFamily,currentFontSize);
9.设置系统字体
DevExpress.Utils.AppearanceObject.DefaultFont=newFont(this.Font.FontFamily,currentFontSize);
10.treeView
为tree节点加右键菜单并选中该节点
privatevoidtreeList1_MouseDow
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DevExpress 10 使用 技巧
![提示](https://static.bdocx.com/images/bang_tan.gif)