1. 程式人生 > >DevExpress_常用控制元件11_GridControl

DevExpress_常用控制元件11_GridControl

2.3 GridControl

1、設計資料來源並繫結欄位:             

DataTable dt = new DataTable();

            dt.Columns.Add("name", System.Type.GetType("System.String"));

            dt.Columns.Add("sex", System.Type.GetType("System.String"));

            dt.Columns.Add("age", System.Type.GetType("System.String"));

           DataRow row=dt.NewRow();;

           row["name"] = "11";

           row["sex"] = "ss";

           row["age"] = "age";

           dt.Rows.Add(row);

  //繫結欄位

 gridView1.Columns[1].FieldName = "sex";

           gridView1.Columns[2].FieldName = "age";

           gridView1.Columns[0].FieldName = "name";

          gridControl1.DataSource = dt;

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

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

3、 如何新增一條記錄

(1)、gridView.AddNewRow()

(2)、實現 gridView_InitNewRow 事件

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

gridView.populateColumns();

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

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

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

6、如何禁用 GridControl 中單擊列彈出右鍵選單

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

7、如何隱藏 GridControl 的 GroupPanel 表頭

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

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

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

9、如何在查詢得到 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); } } }

10、如何顯示水平滾動條

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

列表寬度自適應內容

gridview1.BestFitColumns();

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

設定 this.gridView.MoveFirst()

12、如何定位到下一條資料/記錄? 設定 this.gridView.MoveNext()

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

設定 this.gridView.MoveLast()

14、設定成一次選擇一行,並且不能被編輯

this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;



 this.gridView1.OptionsBehavior.Editable = false;



this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;

15、如何顯示行號?

private void gvPayList_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){

	e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
	if (e.Info.IsRowIndicator){
		if (e.RowHandle >= 0){
			e.Info.DisplayText = (e.RowHandle + 1).ToString();                 

		}else if (e.RowHandle < 0 && e.RowHandle > -1000){
  			e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite; 
  			e.Info.DisplayText = "G" + e.RowHandle.ToString();                 
  		}             
  	}         
}

16、如何讓各列頭禁止移動?

設定 gridView1.OptionsCustomization.AllowColumnMoving = false;

17、如何讓各列頭禁止排序?

設定 gridView1.OptionsCustomization.AllowSort = false;

18、如何禁止各列頭改變列寬?

設定 gridView1.OptionsCustomization.AllowColumnResizing = false;

19.拖動滾動條時固定某一列

設定Columns,選擇要固定的列。設定Fixed屬性,可以選擇:固定在左邊、固定在右邊、不固定。