天天看點

DevExpress表格GridControl控件屬性設定總結

首先介紹一下XtraGrid,XtraGrid有兩個關鍵類:GridControl和GridView。GridControl本身不顯示資料,資料都是顯示在GridView/CardView/XXXXView中。GridControl是各種View的容器。是以要控制顯示,要從GridView這些類入手。

先來一些教程:

1、DevExpress使用教程:XtraGrid常見用法,主要介紹了XtraGrid的資料綁定與資料分析功能,如統計、排序、分頁等。

2、DevExpress使用教程:Gridview下拉框,主要介紹了下拉框的使用。

3、DevExpress使用教程:添加非綁定列,主要介紹了如何添加非綁定列。

4、DevExpress使用教程:向GridControl添加進度條控件

5、DevExpress使用教程:XtraGridControl動态添加右鍵菜單

上面幾個教程基本可以讓你對XtraGrid的用法有一個比較系統的了解,但在實際使用時就會發現有太多的屬性設定,要一一記錄,下面就将我遇到的,比較有用的記錄下來:

1、去除 GridView 頭上的 "Drag a column header here to group by that column"

--> 點選 Run Designer -> 找到:OptionView -> 将 ShowGroupPanel : 設定為 false ;

2、如何顯示出 GridView 自帶的搜尋功能

--> 點選 Run Designer -> 找到: OptionsFind -> 将AlwaysVisible : 設定為 True

3、如何将GridView的大小自适應窗體的大小

--> 右鍵 GridView 控件 -> 屬性 -> 找到 Dock : 設定為 Fill

4、GridControl列自動比對寬度

//自動調整所有字段寬度 this.gridView1.BestFitColumns(); //調整某列字段寬度 this.gridView1.Columns[n].BestFit();

1

2

3

4

//自動調整所有字段寬度

this.gridView1.BestFitColumns();

//調整某列字段寬度

this.gridView1.Columns[n].BestFit();

5、DevExpress控件組中的GridControl控件不能使橫向滾動條有效。

現象:控件中的好多列都擠在一起,列寬都變的很小,根本無法正常浏覽控件單元格中的内容。再就是如果資料比較少,也會占滿整個GridControl,非常不美觀,此時也可用這種方法解決。

解決:gridView1.OptionsView.ColumnAutoWidth屬性是true,即各列的寬度自動調整,你把它設成false,就會出現了。

6、讓GridView 行 不可編輯

-- > Run Designer -> OptionsBehavior -> Editable : False

7、GridView 設定選中行的顔色

GridView : Run Designer -> Appearences : selectRow & FocusedRow (兩項都要設定)

BackColor : MediumSlateBlue 背景色

ForeColor : White 前景色 字型顔色

8、設定奇、偶行交替顔色

(1) OptionsView.EnableAppearanceEvenRow = true;OptionsView.EnableAppearanceOddRow = true;

(2) 設定Appearance.EvenRow.BackColor和Appearance.OddRow.BackColor

9、GridView 設定标題行顔色

GridView : Run Designer -> Appearences : HeadPanel 在這個屬性組中都是關于标題行的設定,再次不做诠釋.

當設定完HeadPanel 其實并沒有結束,是不顯示效果的, 還需要設定 GridControl 屬性中 LookAndFeel : Style 設定為ultraFlat , UseDefaultLookAndFeel 設定為 False .

10 、GridView 設定标題行以及内容行 資料居中

标題行 10 所述 在HeadPanel 裡有一個TextOptions 展開之後 将HAlignment : Center

如果是将内容行資料居中.有兩種方法 1 : 逐行設定 2 : 設定Appearences

1 : GridView -> Run Designer -> Columns -> AppearanceCell -> TextOptions 找到HAlignment : Center .

2 : GridView -> Run Designer -> Appearance -> ViewCaption -> TextOptions -> HAlignment : Center

我在使用時設定了2并不起作用,真正起作用的是:

GridView -> Run Designer -> Appearance -> Row -> TextOptions -> HAlignment : Center

11、GridView添加CheckBox并支援多選操作.

GridView : Run Designer -> OptionsSelection -> MultiSelect : True MultiSelectMode : CheckBoxRowSelect

12、選擇某行後擷取目前表格資料

1 this.textBox1.Text = gridView2.GetDataRow(e.RowHandle)["列名"].ToString();

//不顯示内置的導覽列。

gc1.UseEmbeddedNavigator = false;

//不顯示分組的面闆

gv1.OptionsView.ShowGroupPanel = false;

gv2.OptionsView.ShowGroupPanel = false;

//自動改變行高适應内容

gv1.OptionsView.RowAutoHeight = true;

gv2.OptionsView.RowAutoHeight = true;

//允許自動合并單元格

gv1.OptionsView.AllowCellMerge = true;

//指定某個列的合并單元格

gv1.OptionsView.AllowCellMerge = true;

gv1.Columns[""].AllowMerge = true;

//如果主從表中,沒有找到從表内容也要顯示(預設是不顯示的)

gv1.OptionsDetail.AllowExpandEmptyDetails = true;

//顯示自動篩選行(效果跟Excel的自動篩選差不多)

gv2.OptionsView.ShowAutoFilterRow = true;

//使得GridView不能編輯

gv1.OptionsBehavior.Editable = false;

gv2.OptionsBehavior.Editable = false;

//内置編輯器顯示的模式

gv1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;

//主從表顯示的功能是否可用

//gv1.OptionsDetail.EnableMasterViewMode = false;

//如果顯示了主從表,每點開個加号,就會顯示一個Tabs,裡面往往顯示了兩個面闆。

//事實上沒必要這樣幹的。一般選擇關閉。關閉的對象是主GridView的此項屬性。

gv1.OptionsDetail.ShowDetailTabs = false;

1、 如何解決單擊記錄整行選中的問題

View->OptionsBehavior->EditorShowMode 設定為:Click

2、 如何新增一條記錄

(1)、gridView.AddNewRow()

(2)、實作 gridView_InitNewRow 事件

3、如何解決 GridControl 記錄能擷取而沒有顯示出來的問題

gridView.populateColumns();

4、如何讓行隻能選擇而不能編輯(或編輯某一單元格)

(1)、View->OptionsBehavior->EditorShowMode 設定為:Click

(2)、View->OptionsBehavior->Editable 設定為:false

5、如何禁用 GridControl 中單擊列彈出右鍵菜單

設定 Run Design->OptionsMenu->EnableColumnMenu 設定為:false

6、如何隐藏 GridControl 的 GroupPanel 表頭

設定 Run Design->OptionsView->ShowGroupPanel 設定為:false

7、如何禁用 GridControl 中列頭的過濾器 過濾器如下圖所示:     

設定 Run Design->OptionsCustomization->AllowFilter 設定為:false

8、如何在查詢得到 0 條記錄時顯示自定義的字元提示/顯示 如圖所示:

 方法如下:

//When no Records Are Being Displayed

private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)

{

 //方法一(此方法為GridView設定了資料源綁定時,可用)

 ColumnView columnView = sender as ColumnView;

BindingSource bindingSource = this.gridView1.DataSource as BindingSource;

if(bindingSource.Count == 0)

{

string str = "沒有查詢到你所想要的資料!";

Font f = new Font("宋體", 10, FontStyle.Bold);

Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5);

e.Graphics.DrawString(str, f, Brushes.Black, r); }

//方法二(此方法為GridView沒有設定資料源綁定時,使用,一般使用此種方 法)

if (this._flag)

 { if (this.gridView1.RowCount == 0)

 { string str = "沒有查詢到你所想要的資料!"; Font f = new Font("宋體", 10, FontStyle.Bold);

Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5);

e.Graphics.DrawString(str, f, Brushes.Black, r); } } }

9、如何顯示水準滾動條?或

設定 this.gridView.OptionsView.ColumnAutoWidth = false;

.....清單寬度自适應内容

gridview1.BestFitColumns();

10、如何定位到第一條資料/記錄?

設定 this.gridView.MoveFirst()

11、如何定位到下一條資料/記錄?

設定 this.gridView.MoveNext()

12、如何定位到最後一條資料/記錄?

設定 this.gridView.MoveLast()