Kei*_*ith 11 vb.net datagridview datagridviewcolumn winforms
我有一个奇怪的问题,这可能是一个简单的修复,但经过大量的研究,我似乎无法找到解决方案.
我有一个DataGridView我试图使列标题居中,但结果是在居中的左偏 - 几乎像一个缩进问题.我在一两个网站上看过一些关于这个问题的帖子,但从来没有一个解决方案.有什么想法吗?
这是我目前正在尝试使用的声明:
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Run Code Online (Sandbox Code Playgroud)
Cod*_*ray 20
您发布的代码位于正确的轨道上:您需要设置控件的ColumnHeadersDefaultCellStyle属性DataGridView.
然而,你需要创建一个新的DataGridViewCellStyle类,并分配是对ColumnHeadersDefaultCellStyle财产.Alignment除非您已DataGridViewCellStyle为此属性指定了类,否则无法在代码示例显示时修改该属性.
因此,例如,以下代码在空白项目中实现了完美居中的列标题:
Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle
Run Code Online (Sandbox Code Playgroud)

将来,您可能会发现从Designer中更容易完成这些类型的事情.如果您仍需要通过代码自行完成,则可以检查*.Designer.vb创建的文件以查看其完成方式.
编辑:我刚刚注意到你在列中引用的轻微偏移 - 它确实在每个标题的右侧创建了一些额外的填充.不过,这不是一个错误.有一个更简单的解释.
像a一样ListView,DataGridView支持按列排序.因此,每个列标题保留足够的空间以在计算中心对齐时显示排序字形(通常为箭头).
如果您希望列标题完全居中,则需要禁用排序.将SortMode列的属性设置为"NonSortable".这样可以防止在列文本居中或右对齐时为排序字形保留空间.
| 归档时间: |
|
| 查看次数: |
29410 次 |
| 最近记录: |