winforms - renombrar - poner encabezado a un datagridview c#
Alinear a la derecha el encabezado de columna DataGridView en Winforms (2)
Tengo una columna Nombre "Precio de cotización" en un control de formas de pago 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.
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.
Puede alinear todos los encabezados de columna 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;
Referencia tomada de una respuesta VB , probada como correcta.
Mientras escribía lo siguiente, me di cuenta de que algo podría ser el problema: el nombre de una columna de DataGridView
no puede contener un espacio; está haciendo referencia a la colección de columnas por el texto del encabezado, no por el 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, eso aparte:
El código que tiene funciona perfectamente para mí, implementé lo siguiente en uno de mis proyectos de prueba de gridView (en el constructor) y el texto del encabezado se alinea a la derecha:
dataGridView.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
dataGridView.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
Como mencionó el espacio en el texto del encabezado, la columna 2 incluye un espacio en su texto.
Una cosa que he visto mencionar es que el texto del encabezado puede parecer que no se alinea a la derecha cuando el glifo de ordenación impide que se alinee completamente con el margen de la celda.
A ver si esto hace alguna diferencia:
dataGridView.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable;