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、選擇某行後獲取當前表格數據

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

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

DEV GridControl小結。。 - dingtao-wgs - 程序員驛站

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

設置 Run Design->OptionsCustomization->AllowFilter 設置爲:false

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

 

 

DEV GridControl小結。。 - dingtao-wgs - 程序員驛站

 

 方法如下:

//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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章