我有一个奇怪的问题,这可能是一个简单的修复,但经过大量的研究,我似乎找不到一个解决方案.
我有一个DataGridView,我试图将列标题放在中心位置,但结果是左边的偏心,就像一个缩进的问题.我在一个或两个网站上看到过这个问题的一些帖子,但从来没有一个解决方案.有什么想法吗?
以下是我目前使用的声明:
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
您发布的代码在正确的轨道上:您需要设置DataGridView控件的ColumnHeadersDefaultCellStyle属性.
原文链接:https://www.f2er.com/vb/255556.html但是,您需要创建一个新的DataGridViewCellStyle类并将其分配给ColumnHeadersDefaultCellStyle属性.除非您已经为此属性分配了DataGridViewCellStyle类,否则不能修改Alignment属性.
Dim dgvColumnHeaderStyle As New DataGridViewCellStyle() dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle
在将来,您可能会发现更容易从Designer中执行这些类型的事情.如果您仍然需要通过代码自行执行,您可以检查所创建的* .Designer.vb文件,以了解其是如何完成的.
编辑:我刚刚注意到你在列中指出的轻微偏移 – 它确实在每个标题的右边创建了一些额外的填充.这不是一个bug.有一个更简单的解释.
像ListView一样,DataGridView支持按列排序.因此,在计算中心对齐时,每个列头都保留足够的空间来显示排序字形(通常是箭头).
如果要使列标题完全居中,则需要禁用排序.将列的SortMode属性设置为“NonSortable”.每当列文本为中心或右对齐时,这将防止为排序字形保留空格.