总结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);
                }
            }
        }
 

你可能感兴趣的:(DevExpress)