总结DevExpress10个使用技巧(转载)

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.barEditItem.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.ApplicationMenu5.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\\ViewInfo.xml"); 

导出xml中保管的状况信息 

dockManager1.RestoreLayoutFromXml("..\\UserConfig\\ViewInfo.xml"); 

8.barManager  

设置bar的字体与系统字体 

barAndDockingController1.AppearancesBar.ItemsFont = new Font(this.Font.FontFamily, currentFontSize); 

9.设置系统字体  

DevExpress.Utils.AppearanceObject.DefaultFont = new Font(this.Font.FontFamily, currentFontSize); 

10.treeView  

为tree节点加右键菜单并选中该节点 

        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); 

                } 

            } 

        } 
posted @ 2010-11-16 22:08  CookBlack  阅读(1951)  评论(0)    收藏  举报


作者:CookBlack
出处:http://www.cnblogs.com/CookBlack/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。