1.設計器方式創建
1.點擊“Change view”>>然后在選中“Convert to”選項>>最后選中點擊“BandedGridView”。
具體操作如下圖所示:
2.點擊上圖的“Run Designer”設計視圖按鈕后,我們先去添加列,選中“Columns”列。
具體操作如下圖所示:
3.點擊“Grid Designer Bands”設計視圖中的“Bands”給列加一個大列把上面我們添加列分配到具體的大列中
具體操作如下圖所示:
4.設計和運行效果展示:
2.代碼創建
1.具體實現代碼如下:

1 //引用:using DevExpress.XtraGrid.Views.BandedGrid; 2 private GridBand gridBand1; 3 private GridBand gridBand2; 4 5 //創建復合表頭 分別添加了“基本信息”和“學校信息”這兩個復合表頭 6 private void CreateGridBand() 7 { 8 gridBand1 = new GridBand();//實例化“GridBand” 9 gridBand1.AppearanceHeader.Options.UseTextOptions = true;//允許更改列的“外觀” 10 gridBand1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;//讓列居中顯示 11 gridBand1.Caption = "基本信息";//列的顯示名稱 12 gridBand1.Name = "gridBand1";//列名稱 13 gridBand1.OptionsBand.FixedWidth = true;//固定列的寬度 14 gridBand1.VisibleIndex = 0;//下標 15 gridBand1.Width = 112;//寬度 16 this.bandedGridView1.Bands.Add(gridBand1);//把創建好的“GridBand”點擊到視圖中 17 18 gridBand2 = new GridBand(); 19 gridBand2.AppearanceHeader.Options.UseTextOptions = true; 20 gridBand2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; 21 gridBand2.Caption = "學校信息"; 22 gridBand2.Name = "gridBand2"; 23 gridBand2.OptionsBand.FixedWidth = true; 24 gridBand2.VisibleIndex = 1; 25 gridBand2.Width = 93; 26 this.bandedGridView1.Bands.Add(gridBand2); 27 }

1 //創建列並把列分配到指定的“基本信息”和“學校信息”這兩個復合表頭下 2 private void CreateColumn() 3 { 4 /* 5 * 先創建列,在設置列中的屬性是因為這樣才能控制列的寬度。 6 * 如果實例化創建列並同時設置列的屬性,那么列中設置的寬度就不能正常顯示 7 */ 8 #region 實例化並創建列 9 BandedGridColumn name = new BandedGridColumn(); 10 this.bandedGridView1.Columns.Add(name); 11 BandedGridColumn age = new BandedGridColumn(); 12 this.bandedGridView1.Columns.Add(age); 13 BandedGridColumn gender = new BandedGridColumn(); 14 this.bandedGridView1.Columns.Add(gender); 15 BandedGridColumn school = new BandedGridColumn(); 16 this.bandedGridView1.Columns.Add(school); 17 BandedGridColumn classs = new BandedGridColumn(); 18 this.bandedGridView1.Columns.Add(classs); 19 #endregion 20 21 #region 設置列的屬性 22 name.Caption = " 姓名";//顯示名稱 23 name.FieldName = "name";//數據源名稱 24 name.MinWidth = 50;//最小寬度 25 name.Visible = true;//是否顯示 26 name.OptionsColumn.AllowEdit = false;// 是否能編輯單元格 27 this.gridBand1.Columns.Add(name);//給指定的“GridBand”("基本信息")添加列 28 29 age.Caption = "年齡"; 30 age.FieldName = "age"; 31 age.MinWidth = 45; 32 age.Visible = true; 33 this.gridBand1.Columns.Add(age); 34 35 gender.Caption = "性別"; 36 gender.FieldName = "gender"; 37 gender.MinWidth = 45; 38 gender.Visible = true; 39 this.gridBand1.Columns.Add(gender); 40 41 school.Caption = "學校"; 42 school.FieldName = "school"; 43 school.MinWidth = 100; 44 school.Visible = true; 45 this.gridBand2.Columns.Add(school); 46 47 classs.Caption = "班級"; 48 classs.FieldName = "classs"; 49 classs.MinWidth = 80; 50 classs.Visible = true; 51 this.gridBand2.Columns.Add(classs); 52 #endregion 53 }

1 //創建DataTable並賦值 2 private void CreateData() 3 { 4 DataTable dt = new DataTable(); 5 dt.Columns.Add("name", Type.GetType("System.String")); 6 dt.Columns.Add("age", Type.GetType("System.String")); 7 dt.Columns.Add("gender", Type.GetType("System.String")); 8 dt.Columns.Add("school", Type.GetType("System.String")); 9 dt.Columns.Add("classs", Type.GetType("System.String")); 10 DataRow row = dt.NewRow(); 11 row["name"] = "張三"; 12 row["age"] = "18"; 13 row["gender"] = "男"; 14 row["school"] = "理工大學"; 15 row["classs"] = "天才2021級"; 16 dt.Rows.InsertAt(row, 0); 17 gridControl1.DataSource = dt;//表格獲取數據源 18 }
2.效果圖如下: