2009-07-06 15 views
13

Tengo una columna Nombre "Precio de cotización" en un control de formas de ganar DataGridView. Puedo alinear una columna a la derecha sin espacios como "Hower" de la "Unidad". No puedo alinear correctamente el encabezado de la columna con el nombre de la columna llamado "Precio de cotización". Intenté utilizar TopRight, MiddleRight y bottomRight sin éxito.Alinear a la derecha el encabezado de columna DataGridView en Winforms

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. 

Estoy seguro de que estoy haciendo algo realmente tonto, sin embargo, no puedo hacer que esto funcione.

Respuesta

22

Cuando escribía lo siguiente, me di cuenta de que algo podría ser el problema: el nombre de una columna DataGridView no puede contener un espacio; está haciendo referencia a la colección de columnas por el texto del encabezado, no al nombre de la columna. Aunque, cuando intento y ejecuto código como el que tiene en su ejemplo, presiono un error de tiempo de ejecución (excepción de referencia nula).

De todos modos, aparte de eso:

El código que tiene funciona perfectamente para mí, he implementado lo siguiente en uno de mis proyectos de prueba DataGridView (en el constructor) y el texto del encabezado derecho alinea:

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

Como ha mencionado el espacio en el texto del encabezado, la columna 2 incluye un espacio en su texto.

Una cosa que he mencionado es que el texto del encabezado puede aparecer que no se alinea a la derecha cuando el glifo de ordenación impide que se alinee completamente con el margen de la celda.

ver si esto hace alguna diferencia:

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

puede alinear todos los títulos de las columnas de esa manera, en lugar de hacerlo uno por uno ..

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

de referencia tomado de un VB answer, probado como bueno

Cuestiones relacionadas