2009-07-06 23 views
13

DataGridView winformsコントロールに列名 "Quote Price"があります。私は "Unit" howerverのような空白なしで列を整列させることができます。 "見積価格"という名前の列ヘッダーに列ヘッダーを正しく整列できません。私は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列の名前にスペースを入れることはできません。列名ではなくヘッダーテキストで列コレクションを参照しています。あなたのサンプルにあるようなコードを実行しようとすると、ランタイムエラー(null参照例外)が発生します。それはさておきとにかく

、:

あなたは完全に私のために作品を持っているコード、私は(コンストラクタで)私のDataGridViewのテストプロジェクトの一つに次のように実装され、ヘッダーテキストは右揃え:

dataGridView.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 
dataGridView.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 

ヘッダーテキストのスペースに言及していたため、2列目のテキストにスペースが含まれていました。

私が見てきたことの1つは、並べ替えグリフがセルマージンに完全に揃うのを止めているときに、ヘッダーテキストが右揃えにならないように見えることです。

dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; 
0

あなたはむしろ一つ一つやってよりも、すべての列ヘッダーそのように揃えることができ、

//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とテストされています。