DevExpress控件使用经验总结

出处:https://www.cnblogs.com/chucklu/category/696272.htmlhtml

========================================================git

 

先介绍几个控件的系列文章吧,也是从网上找的,你们参考app

RadioGroup控件介绍(Dev控件介绍)

DateEdit控件介绍(Dev控件)

ToggleSwitch控件介绍

PanelControl控件和LayoutControl控件介绍

GridControl控件介绍(Dev的控件)

TreeList控件介绍

SplashScreenManager控件介绍

StyleController控件介绍(窗体风格02)

DockManager控件介绍

BarManager控件介绍

NavBarControl控件介绍

 

出处:https://blog.csdn.net/clearloveq/article/category/7763460框架

=============================================================ide

DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件。本文主要介绍我在使用DevExpress控件过程当中,遇到或者发现的一些问题解决方案,或者也能够所示一些小的经验总结。整体来说,使用DevExpress控件,能够得到更高效的界面设计以及更美观的效果。本文主要经过给出相应的例子以及相关界面效果来讲明问题,但愿你们可以从中得到好的知识和思路。 函数

一、 应用Office2007和Office2010的界面主题布局

开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。通过查找发现须要在入口函数里面添加几行代码,以下所示。post

            DevExpress.UserSkins.OfficeSkins.Register();
            DevExpress.UserSkins.BonusSkins.Register();
            DevExpress.Skins.SkinManager.EnableFormSkins(); 

指定界面主题效果,能够经过代码设置,指定主题的名称便可。ui

UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue"); this

或者在界面中添加一个控件 DefaultLookAndFeel,设置其对应的界面效果便可实现整个设计时刻和运行时刻的界面效果,以下图所示。

 

 

二、Properties属性

DevExpress不少控件的通常属性,会放置在该属性下面,如ComboBox下拉列表的属性操做以下

         private  void InitDictItem()
        {
             this.txtManufacture.Properties.Items.Clear();
             this.txtManufacture.Properties.Items.AddRange(DictItemUtil.GetDictByDictType( " 供货商 "));
        }   

这是一个很丰富属性的归类,不少经常使用的属性基本上都囊括在这里了,若是你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。例如设置显示的可见性、可用性、

 自定义显示格式等等。

 

三、GridView的相关操做

获取选定行制定列的内容,用于删除记录的操做代码以下

DevExpess的GridView控件,和传统WinFrom的GridView有很大的不一样,如他没有GetSelectedRow的行集合操做,但能够经过GetSelectedRows获取制定的行序号,经过行序号来进行操做,如要得到指定行,制定列的内容,能够经过GetRowCellDisplayText 获取文本或者经过GetRowCellValue获取对应的值。

若是须要获取当前选定行(焦点所在行)的制定列的数据,那么能够经过函数GetFocusedRowCellDisplayText("ID")来获取。

复制代码
         private  void winGridViewPager1_OnDeleteSelected( object sender, EventArgs e)
        {
             if (MessageUtil.ShowYesNoAndTips( " 您肯定删除选定的记录么? ") == DialogResult.No)
            {
                 return;
            }

             int[] rowSelected =  this.winGridViewPager1.GridView1.GetSelectedRows();
             foreach ( int iRow  in rowSelected)
            {
                 string ID =  this.winGridViewPager1.GridView1.GetRowCellDisplayText(iRow,  " ID ");
                BLLFactory<ItemDetail>.Instance.Delete(ID);
            }
            BindData();
        }  
复制代码

 

为GridView行提示信息以及显示行号,有时候为了方便数据的显示,须要在GridView的第一列显示该列的行信息以及行号,那么须要为GridView控件添加一个ToolTipController控件,而后实现该控件的GetActiveObjectInfo事件,在事件里面添加下面代码以及实现GridView控件的CustomDrawRowIndicator事件便可,以下代码所示。

复制代码
         private  void toolTipController1_GetActiveObjectInfo( object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
        {
             if (e.SelectedControl != gridControl1)  return;

            ToolTipControlInfo info =  null;
             // Get the view at the current mouse position
            GridView view = gridControl1.GetViewAt(e.ControlMousePosition)  as GridView;
             if (view ==  nullreturn;

             // Get the view's element information that resides at the current position
            GridHitInfo hi = view.CalcHitInfo(e.ControlMousePosition);
             // Display a hint for row indicator cells
             if (hi.HitTest == GridHitTest.RowIndicator)
            {
                 // An object that uniquely identifies a row indicator cell
                 object o = hi.HitTest.ToString() + hi.RowHandle.ToString();
                StringBuilder sb =  new StringBuilder();
                sb.AppendLine( " 行数据基本信息: ");
                 foreach (GridColumn gridCol  in view.Columns)
                {
                     if (gridCol.Visible)
                    {
                        sb.AppendFormat( "     {0}:{1}\r\n ", gridCol.Caption, view.GetRowCellDisplayText(hi.RowHandle, gridCol.FieldName));
                    }
                }
                info =  new ToolTipControlInfo(o, sb.ToString());
            }

             // Supply tooltip information if applicable, otherwise preserve default tooltip (if any)
             if (info !=  null)
            {
                e.Info = info;
            }
        }  
复制代码

 

复制代码
          private  void gridView1_CustomDrawRowIndicator( object sender, RowIndicatorCustomDrawEventArgs e)
        {
             if (ShowLineNumber)
            {
                e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
                 if (e.Info.IsRowIndicator)
                {
                     if (e.RowHandle >=  0)
                    {
                        e.Info.DisplayText = (e.RowHandle +  1).ToString();
                    }
                }
            }
        }
复制代码

 

以上虽然是使用了个人DevExpress分页控件,不过度页控件的内部就是使用了DevExpress的GridControl控件的。

 

 四、经常使用布局控件。

传统的数据编辑界面,咱们通常须要添加一个Label,而后再加一个TextBox或者其余控件,而DevExpress在这方面确实下了很多功夫,引入了一个LayoutControl的控件,该控件能够在你添加一个TextBox等其余控件的时候,自动为你加入一个相似Label的控件,并且布局已经给你设计对齐好,添加几个能够在一行中放置多列控件,对齐效果也很是好,若是是从新设计界面,省却很多对齐以及维护Label的属性。

另外,该布局属性能够设置相似GroupBox的边界效果(默认不显示文本和边界),也能够统一设计在该布局控件内部各类控件的效果,如ReadOnly为True的显示如何,Enable为False的显示如何,只须要设置一个地方,就能够统一界面效果了。总之,用起来至关的不错。

 

 

 整体来说,第一次使用DevExpress会以为不少地方不太适应,甚至有时候找不到对应的属性,可是当慢慢熟悉了使用该控件来开发的时候,会以为它确实在不少地方引入了较好的理念,习惯了就以为效率提升了很多,界面设计上也会以为更加美观和方便了。因为我只是在我日常开发的小例子,以及个人Winform开发框架中,应用了DevExpress控件的各类经常使用效果,应该还有不少经常使用的控件以及高级控件没有用到,之后有继续使用的话,会继续记录相应的经验心得供你们探讨。

最后附上一个我应用DevExpress控件改进过Winform开发框架的界面效果图,里面应用到了Ribbon界面效果以及基于DevExpress控件的分页控件(前面有介绍过使用例子),使用了分页控件,对整个GridView的处理上,会方便不少,界面效果以下所示。

 

 

 

出处:http://www.cnblogs.com/wuhuacong/archive/2011/08/31/2161002.html

相关文章
相关标签/搜索