DevExpress中使用BandGridView实现复合(多行)表头、设置多行表头背景颜色、表格边框颜色

发布时间 2023-12-22 08:35:42作者: 小溪河北

一、实现效果

20211012132412549.gif

二、 实现方法

2.1、创建复合表头

①将创建的GridControl下的GirdView1转化为BandGridView类型;

②创建需要展示的列(指定列的名称【Name】、描述【caption】、数据字段名称【FieldName】)

③绑定列实现复合表头。

注意:如果复合表头有多行,则需要设置新增Band的Row Count,然后设置【Band properties下的AutoFillDown=false】

详细操作如下:

20210917111027481.gif

注意:如果要隐藏表格的设计字段内容,则需要将【Views—>bandedGridView1—>OptionsView】下的【ShowColumnHeadersShowGroupPanel】属性设置为:False

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAeGlhb2NoZW5YSUhVQQ_size_20_color_FFFFFF_t_70_g_se_x_16

2.2、设置多行表头背景颜色、表格边框颜色

  1. /// <summary>
  2. /// 设置表格标题背景颜色
  3. /// </summary>
  4. /// <param name="gridView">BandedGridView组件</param>
  5. /// <param name="startColumnIndex">开始列索引</param>
  6. /// <param name="endColumnIndex">结束列索引</param>
  7. /// <param name="color">背景颜色</param>
  8. public static void SetGridViewHeaderBackColor(BandedGridView gridView,
  9. int startColumnIndex, int endColumnIndex, Color color)
  10. {
  11. if (gridView != null && startColumnIndex >= 0 && endColumnIndex > 0)
  12. {
  13. for (int i = startColumnIndex; i <= endColumnIndex; i++)
  14. {
  15. GridBand curGridBand = gridView.Bands[i];
  16. curGridBand.AppearanceHeader.BackColor = color;
  17. if (curGridBand.Children.View.Bands.Count > 0)
  18. {
  19. foreach (GridBand item in curGridBand.Children)
  20. {
  21. item.AppearanceHeader.BackColor = color;
  22. }
  23. }
  24. }
  25. }
  26. }
  27. /// <summary>
  28. /// 设置表格单元格边框颜色
  29. /// </summary>
  30. /// <param name="gridView">GridView组件</param>
  31. /// <param name="color">需设置的颜色</param>
  32. /// <param name="isSetting">是否设置</param>
  33. public static void SetGridViewBorderLineBackColor(GridView gridView, Color color, bool isSetting = true)
  34. {
  35. //获取表格边框原来的颜色
  36. Color originalColor = gridView.Appearance.VertLine.BackColor;
  37. gridView.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple;
  38. if (isSetting)
  39. {
  40. gridView.Appearance.VertLine.BackColor = color;
  41. gridView.Appearance.HorzLine.BackColor = color;
  42. gridView.Appearance.VertLine.Options.UseBackColor = isSetting;
  43. gridView.Appearance.HorzLine.Options.UseBackColor = isSetting;
  44. }
  45. else
  46. {
  47. gridView.Appearance.VertLine.BackColor = originalColor;
  48. gridView.Appearance.HorzLine.BackColor = originalColor;
  49. gridView.Appearance.VertLine.Options.UseBackColor = isSetting;
  50. gridView.Appearance.HorzLine.Options.UseBackColor = isSetting;
  51. }
  52. }

2.3、使用示例

  1. //修改复合表头的背景颜色
  2. SetGridViewHeaderBackColor(bandedGridView1,0,bandedGridView1.Bands.Count-1,Color.FromArgb(0,68,176));
  3. //修改表格单元格边框颜色
  4. SetGridViewBorderLineBackColor(bandedGridView1,Color.Blue,true);

2.4、其他资料

DevExpress中使用BandGridView实现复合(多行)表头和固定列不跟随滑动条移动、导出表格内容为Excel文件