winforms 如何设置datagridview表头单元格边框的颜色

mzillmmw  于 2022-11-17  发布在  其他
关注(0)|答案(2)|浏览(666)

DataGridViewGridColor属性可以设置分隔DataGridView单元格的网格线的颜色(即每个单元格的边框)。
但它不能更改标题单元格的网格线颜色(即标题单元格的边框)。
我如何才能做到这一点?
是否有一个属性可用于完成此操作?
1.使用GridColor属性的图像

2.我的要求的图像

正如TnTinMn所说,GridColor属性只影响具有CellBorderStyle= DataGridViewCellBorderStyle.Single的单元格。
结果如下图所示。
它不会影响分隔标题单元格的网格线。
3.使用CellBorderStyle属性

的图像
又试了一次,我成功了。
4.使用'启用标题可视化样式= false'

的图像
解决方案总结如下:
1.使用GridColor设置网格线的颜色。
2.将CellBorderStyleColumnHeadersBorderStyleRowHeadersBorderStyle设置为Single
3.将EnableHeadersVisualStyles设定为false

njthzxwz

njthzxwz1#

  • 做你列出的三件事,然后:*

1.设置CellBorderStyle = DataGridViewCellBorderStyle.Raised-这将允许您的颜色仅显示在标题中,但由于您现在已将正文单元格边框设置为3D类型(即raisedsunken等,而不是singlenone等),因此正文单元格将具有系统默认样式(可能为灰色)。

1qczuiv0

1qczuiv02#

后面还有,但是如果你想保留EnableHeadersVisualStyles = true,你可以修改AdvancedColumnHeaderBorderStyleAdvancedRowHeadersBorderStyleAdvancedCellBorderStyle的边属性。要解决@niaomingjian的例子,你需要将这些边属性修改为:

dgv.AdvancedColumnHeadersBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedColumnHeadersBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedColumnHeadersBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Single;
dgv.AdvancedColumnHeadersBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single;

dgv.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Single;
dgv.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single;

dgv.AdvancedRowHeadersBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedRowHeadersBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.None;
dgv.AdvancedRowHeadersBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Single;
dgv.AdvancedRowHeadersBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Single;

AdvancedColumnHeaderBorderStyle.AllAdvancedRowHeadersBorderStyle.AllAdvancedCellBorderStyle.All设置为单个样式的工作方式似乎不同,因此您需要单独调整每一侧以触发此类样式。

相关问题