Il codice che hai postato è sulla strada giusta: è necessario impostare la proprietà ColumnHeadersDefaultCellStyle
del vostro controllo DataGridView
.
Tuttavia, è necessario creare una nuova classe di DataGridViewCellStyle
e assegnare che alla proprietà ColumnHeadersDefaultCellStyle
. Non è possibile modificare la proprietà Alignment
come mostrato nell'esempio di codice a meno che non sia stata assegnata una classe DataGridViewCellStyle
a questa proprietà.
intestazioni delle colonne Così, per esempio, il codice seguente raggiunge perfettamente centrato in un progetto vuoto:
Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
myDataGridView.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle

In futuro, si può trovare più facile fare questi tipi di cose dal Designer. Se hai ancora bisogno di farlo da solo attraverso il codice, puoi controllare il file *.Designer.vb
che viene creato per vedere come è stato fatto.
EDIT: ho appena notato il leggero scostamento ti riferisci nelle colonne-it effettivamente creare un chilo in più a destra di ogni intestazione. Non è un bug, però. C'è una spiegazione molto più semplice.
Come uno ListView
, lo DataGridView
supporta l'ordinamento per colonne. Pertanto, ogni intestazione di colonna riserva spazio sufficiente per visualizzare il glifo di ordinamento (solitamente una freccia) quando si calcola la giustificazione centrale.
Se si desidera che le intestazioni di colonna siano perfettamente centrate su, è necessario disabilitare l'ordinamento. Impostare la proprietà SortMode
per la colonna su "Non disponibile". Ciò dovrebbe evitare che lo spazio venga riservato per il glifo di ordinamento ogni volta che il testo della colonna è centrato o giustificato a destra.
fonte
2010-12-29 01:41:00
Grazie per la vostra risposta rapida. Quello che noto però è che si ottiene lo stesso pregiudizio sinistro - ognuno dei titoli non è centrato. Sto leggendo alcune informazioni che sembrano indicare un bug, che richiede che ciascuna intestazione sia riempita con alcuni spazi vuoti, ma chiaramente varia in base alla lunghezza dell'intestazione della colonna. Sembra essere un riempimento di circa il 2,5% da aggiungere prima del testo. Chiaramente, non sembra una soluzione. Ho provato questo in alcuni modi e continuo a ottenere la stessa cosa. Strano, eh? – Keith
BTW, il 2.Il 5% è della larghezza totale della colonna ... scusa per qualsiasi confusione generata dall'omissione. – Keith
@ Keith: Ho appena notato cosa stai parlando. È divertente, non ho mai prestato attenzione a quello prima. E tutti i miei amici mi chiamano OCD-questo li mostrerà! Ho aggiornato la mia risposta con alcune nuove informazioni. –