2009-07-06 118 views
13

我在DataGridView winforms控件中有一個列名「Quote Price」。我可以對齊一個沒有空格的列,比如「Unit」howerver,我不能將列標題與名爲「Quote Price」的列名對齊。我試圖使用TopRight,MiddleRight和bottomRight沒有成功。在Winforms中對齊DataGridView列標題

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. 

我相信我在做一些非常愚蠢的事情,但是,我無法得到這個工作。

回答

22

正如我在寫下以下我意識到的東西可能是問題 - 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; 
0

您可以對齊所有列標題那樣,而不是做一個個..從VB answer採取

//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; 

參考,測試成功。