WinForm:如何设置DataGridView列标题对齐方式
最近做WinForm项目时,发现一个问题,就是DataGridView中,不对能某个列的标题单独设置对齐方式。虽然在属性窗口中,可以通过ColumnHeaderDefaultCellStyle属性设置所有列标题的统一对齐方式,但在某些时候,我们可能会因为某种原因,单独设置列标题的对齐方式。比如,对于金额等列,我们通常都会设置成右对齐。
后来查了很久,基本上找到了一些规律,如果我们之前在DataGridView中添加了列,而且列宽设得比较宽,再通过属性绑定的话,由于没有设置该列的SortMode属性为DataGridViewColumnSortMode.NotSortable,即使我们设置了该列HeaderCell.Style.Alignment属性的值,那么就会出现如下图所示的情况:
图中StudentAmount标题文字设置为居右,但显示出来的效果并没有完全居右,倒是像居中。这时,我们可以通过设置列的SortMode属性值为DataGridViewColumnSortMode.NotSortable,我们就可以得到下图所示的效果:
很明显这是个不好的解决方法,因为这样设置了,就无法通过鼠标点击StudentAmout列的列头排序了。
另一个方法就是将该列的列宽设小一点,刚好够就行了,这样看起来就不会有对齐不到位。
另外,我们如果没有在DataGridView绑定数据之前添加列,也可能遇到列标题不能完全对齐的问题(由于宽度原因),也可以按上面的方法解决。
有兴趣的同学,可以在这里下载Demo查看。