我在DataGridView winforms控件中有一个名为“Quote Price”的列。我可以正确对齐一个没有空格的列,例如“Unit”howerver我无法将列标题与名为“Quote Price”的列名称对齐。我试图使用TopRight,MiddleRight和bottomRight但没有成功。
SelectedAdditionalCost.Columns["Quote Price"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; // Doesn't want to right align
SelectedAdditionalCost.Columns["Quote Price"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; // column contents No worries, right aligns.
我确信我正在做一些非常愚蠢的事情,但是,我无法做到这一点。
答案 0 :(得分:25)
正如我在下面写的那样,我意识到可能存在的问题 - DataGridView
列的名称不能包含空格 - 您通过标题文本引用列集合,而不是列名称。虽然,当我尝试运行您的示例中的代码时,我遇到了运行时错误(空引用异常)。
无论如何,除此之外:
您拥有的代码非常适合我,我在我的一个datagridview测试项目中实现了以下内容(在构造函数中),并且标题文本右对齐:
dataGridView.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
因为您在标题文本中提到了空格,所以第2列在其文本中包含了一个空格。
我所看到的一件事是,当排序字形阻止它完全对齐单元格边距时,标题文本可能看起来不对齐。
看看这是否有所不同:
dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;
答案 1 :(得分:1)
您可以像这样对齐所有列标题,而不是逐个对齐..
//MiddleRight Alignment for DataGridView Column Headers
DataGridViewCellStyle colHeaderStyle = new DataGridViewCellStyle();
colHeaderStyle.Alignment= DataGridViewContentAlignment.MiddleRight;
..... some other styles (like color, font etc) .........
dataGridView_custom.ColumnHeadersDefaultCellStyle = colHeaderStyle;
从VB answer获取的参考文献,测试为ok。