Datagridview ColumnHeader与单元格数据对齐

时间:2016-02-18 22:04:01

标签: .net vb.net datagridview datagridcolumnheader

picture of the full datagridview

带有数字符号的列标题有一个荒谬的填充量。

我试过搞乱ColumnHeaderDefaultCellStyle无济于事。有什么想法吗?

close-up with annotated problem

1 个答案:

答案 0 :(得分:1)

好的,如果我理解问题的当前形式,它就是这样的:

enter image description here

顶部图片BAD - 标题文本与单元格文本不对齐 底部图像好:文字排列

首先,标题单元格具有不同的填充,以便为sizer句柄提供空间,在某些情况下还有3D效果。获得你的标题"单元格与标题对齐,添加一点左Padding。让我的" Active"我用过的专栏:

dgv1.Columns(3).DefaultCellStyle.Padding = New Padding(2, 0, 0, 0)

对于右对齐的标题文本,您可能会运气不好,这说明原因:

enter image description here

标题单元格的实际文本区域被限制为为排序标志符号保留空间。如果他们没有这样做,那么当列被排序时,文本会跳转。如果您不打算让用户对数据进行排序,您可以将列设置为不可排序,并且不会为字形保留空间:

dgv1.DataSource = dtSimple
dgv1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable

dgv1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable

dgv1.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
dgv1.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
相关问题