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

相關文章
相關標籤/搜索