Devexpress控件使用一:GridControl


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])); //復制最后一行的數據到新行
 }

 

自定義列顯示事件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM