1、控件及列表展示
1)、控件
2)、構建表格,用於列表展示
3)、gridControl綁定數據
4)、調用綁定:BindDataSource(InitDt());
5)、展示列表
2、表格的列配置
1)、點擊 Run Resigner彈出設計界面
2)、配置后的效果
3、列數據的格式設置
1)、數據
2)、時間
3)、自定義
效果
注:數據公式查找:
4、gridControl屬性
Dock:none 和 Anchor:Top, Bottom, Left, Right 設置隨窗體寬高變化而變化
gridView1.IndicatorWidth = 40; //自增列寬度 gridView1.OptionsView.ColumnAutoWidth = false; //自動調整列寬,使所有列的寬度和視圖的寬度匹配 gridView1.OptionsCustomization.AllowSort = false;//禁止用戶對數據進行排序操作 gridView1.OptionsCustomization.AllowColumnResizing = false; //禁止各列頭改變列寬 gridView1.OptionsCustomization.AllowColumnMoving = false;//各列頭禁止移動 gridView1.VertScrollVisibility = ScrollVisibility.Auto; //顯示垂直滾動條 gridView1.HorzScrollVisibility = ScrollVisibility.Auto; //顯示水平滾動條 gridView1.OptionsMenu.EnableColumnMenu = false; //禁止列頭上的菜單 gridView1.OptionsMenu.EnableFooterMenu = false; //禁止頁腳上的菜單 gridView1.OptionsMenu.EnableGroupPanelMenu = false; //禁止分組面板上的菜單 gridView1.OptionsNavigation.UseTabKey = false; //不使用TAB/SHIFT+TAB移動焦點 gridView1.OptionsBehavior.Editable = false;//不允許編輯 gridView1.OptionsBehavior.ReadOnly = true;//只讀
5、屬性設置
1)、
//如何解決單擊記錄整行選中的問題 View->OptionsBehavior->EditorShowMode 設置為:Click
2)、
//焦點單元格的列 gridview1.FocusedColumn //焦點單元格所在行的行號 gridview1.FocusedRowHandle //焦點單元格的值 gridview1.FocusedValue
3)、
//如何解決 GridControl 記錄能獲取而沒有顯示出來的問題 gridView.populateColumns();
4)、
//如何讓行只能選擇而不能編輯(或編輯某一單元格) View->OptionsBehavior->EditorShowMode 設置為:Click 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)、
//多選 GridControl->GridView->屬性->OptinosSelecttion->MultiSelect
9)、
//在gridcontrol中添加checkbox復選框 gridview->run designer->columns->選擇要變成復選框的那一列->column edit->new(在這里可以選擇很多類型)
10)、
//顯示自動篩選行(效果跟Excel的自動篩選差不多),列表的表格內部的自動篩選 gv2.OptionsView.ShowAutoFilterRow = true;
11)、
//設置成一次選擇一行,並且不能被編輯 this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false; this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
12)、
//設置行號寬 gridView1.IndicatorWidth = 30;
13)、
//設置列表數據居中 gridview->run designer->columns->選擇列->AppearanceCell和AppearanceHeader ->TextOptions->HAlignment屬性設置為Center
6、分組排列匯總
分組
1)按時間分第一組
2)按性別分第二組
效果
3)高級設置
將所有組展開:gridView1.ExpandAllGroups();
4)、結果:
5)、自定義組名 gridView1_CustomDrawGroupRow
結果:
注意:每一行都有一個 RowHandle屬性,普通行的RowHandle從0開始
排列設置
匯總
注:匯總結果顯示在Footer面板中,gridControl的Footer面包默認不顯示
結果:
7、行備注和行號
備注
1)、備注顯示設置
2)、設置備注字段
結果
3)使用電腦鍵盤控制顯示與隱藏
a、設置Form窗體的KeyPreview屬性為true
b、注冊窗體的KeyUp事件
private void Form2_KeyUp_1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F3)
{
gridView1.OptionsView.ShowPreview = !gridView1.OptionsView.ShowPreview;
}
}
行號
gridView1_CustomDrawRowIndicator事件
行號寬:gridView1.IndicatorWidth = 30;
private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator)
{
e.Info.DisplayText = e.RowHandle.ToString();
}
}
結果
8、設置字體顏色
private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) { if (e.Column.FieldName == "TestResult")//設字體顏色 { Result tr = Result.Running;switch (tr) { case Result.Success: e.Appearance.ForeColor = Color.Black; break; default: e.Appearance.ForeColor = Color.Black; break; } } }
9、右鍵菜單
1.在VS工具箱中的“菜單和工具欄”找到ContextMenuStrip控件,雙擊添加。 2.點擊ContextMenuStrip右上方的小三角形,打開編輯項,可以添加菜單項。至於菜單點擊事件,這里就不多說了。 3.選擇gridControl(注意這里不是gridView的屬性),在屬性中可以找到ContextMenuStrip屬性,設置成剛添加的ContextMenuStrip。
4.是否可用設置

問題:在單選時,“打開”(itemOpen)、“刪除”(itemDelete)菜單項都可用,多選時“打開”不可用,“刪除”可用,沒有選擇時“打開”、“刪除”都不可用。
這里需要用到gridView的PopupMenuShowing這個事件。也就是在菜單出現之前用戶點擊右鍵之后,來判斷一下選擇了幾行,從而決定菜單項是否可用。
private void gridView_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
{
//獲取選擇的行數
int select = gridView.SelectedRowsCount;
itemOpen.Enabled = false;
itemDelete.Enabled = false;
if(select == 1)
{
itemOpen.Enabled = true;
itemDelete.Enabled = true;
}
else if(select > 1)
{
itemDelete.Enabled =true;
}
}
樣式設置
全部設置
新增一條記錄
(1)、
private void btn_add_Click(object sender, EventArgs e) { gridView1.AddNewRow(); }
(2)、實現 gridView_InitNewRow 事件(對於新加行的特別的設置)
private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) { ColumnView View = sender as ColumnView; View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //復制最后一行的數據到新行 View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //復制最后一行的數據到新行 }
自定義列顯示事件