繁体   English   中英

如何将标题居中在DataGridView的列中?

[英]How can I center the heading in a column on a DataGridView?

我有一个奇怪的问题,它可能是一个简单的解决方法,但是经过大量研究,我似乎找不到解决方案。

我有一个DataGridView ,试图将列标题居中,但是结果是居中出现左偏-几乎像一个缩进问题。 我在一两个网站上看到过一些关于此问题的文章,但从未找到解决方案。 有什么想法吗?

这是我当前正在尝试使用的语句:

DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

您发布的代码在正确的轨道上:您需要设置DataGridView控件的ColumnHeadersDefaultCellStyle属性。

然而,你需要创建一个新DataGridViewCellStyle类并分配ColumnHeadersDefaultCellStyle财产。 除非已为该属性分配DataGridViewCellStyle类,否则无法修改代码示例所显示的Alignment属性。

因此,例如,以下代码在空白项目中实现了居中对齐的列标题:

Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle

具有居中列标题的DataGridView


将来,您可能会发现从Designer进行这些类型的操作会更容易。 如果仍然需要自己通过代码进行操作,则可以检查所创建的*.Designer.vb文件,以了解其完成方式。


编辑:我刚才注意到您在列中所指的轻微偏移量—实际上确实在每个标题的右侧创建了一些额外的填充。 不过,这不是错误。 有一个简单得多的解释。

ListView一样, DataGridView支持按列排序。 因此,在计算中心对齐时,每个列标题都保留了足够的空间来显示排序标志符号(通常是箭头)。

如果要使列标题完美居中,则需要禁用排序。 将列的SortMode属性设置为“ NonSortable”。 每当列文本居中或右对齐时,这都应防止为排序字形保留空间。

如果要居中或使用“列标题”文本的任何其他对齐方式,则可以使用此

dgvResults.Columns("ColumnName").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM