C# DevExpress GridControl中BandedGridView表格使用
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.效果图如下: