あなたが投稿したコードが正しい軌道に乗っている:あなたはDataGridView
コントロールのColumnHeadersDefaultCellStyle
プロパティを設定する必要があります。
はしかし、あなたは新しいDataGridViewCellStyle
クラスを作成し、ColumnHeadersDefaultCellStyle
プロパティにことを割り当てる必要があります。DataGridViewCellStyle
クラスをこのプロパティに割り当てていない限り、コードサンプルが示すようにAlignment
プロパティを変更することはできません。
したがって、たとえば、次のコードは、空のプロジェクトに完全に中央列見出しを実現:将来的には
Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle
、あなたはそれが簡単にこれらの種類を行うことかもしれませんデザイナーからのもののコードを使用して自分自身で行う必要がある場合は、作成されたファイル*.Designer.vb
を確認して、それがどのように行われたかを確認できます。
EDIT:私はちょうど今、あなたはを参照している列-それは確かに各ヘッダーの右側にあるふくよかを作成しないわずかなオフセットに気づきました。しかし、バグではありません。はるかに簡単な説明があります。
ListView
と同様に、DataGridView
は列単位のソートをサポートしています。したがって、各列ヘッダーは、中央揃えを計算するときにソートグリフ(通常は矢印)を表示するのに十分な領域を確保します。
を完全ににするには、並べ替えを無効にする必要があります。列のSortMode
プロパティを "NonSortable"に設定します。これにより、列テキストが中央または右揃えになるたびにソートグリフ用にスペースが予約されないようにする必要があります。
を使用することができますが、あなたの迅速な対応をありがとうございました。私が気づいたのは、同じ左寄りを得ていることです。見出しのそれぞれは、あまり集中していません。私はバグを示すように見えるいくつかの情報を読んでいますが、各見出しには空白がいくつか埋め込まれている必要がありますが、明らかに見出しの長さによって異なります。それは、テキストの前に追加される約2.5%のパディングに見えます。明らかに、それは解決策のようには聞こえません。私はこれをいくつかの方法で試し、同じことを続けています。不思議ですね? – Keith
ところで、2。5%は列の全幅のうちの1つです。 – Keith
@Keith:私はちょうどあなたが話していることに気づいた。それは面白いです、私はこれまで何の注意も払っていません。そして、私の友人のすべてがOCDと呼んでいます。私はいくつかの新しい洞察力で私の答えを更新しました。 –