Tengo un DataGridView en mi aplicación C#. Utilizando el diseñador, configuré AlternatingRowsDefaultCellStyle
, así como las propiedades DefaultCellStyle
en el propio DGV. Ambos estilos tienen un valor de relleno de 0, 0, 5, 0
. No configuré ningún estilo personalizado para ninguna de las columnas DGV del menú Edit Columns
en el complemento Tareas DataGridView.Cambiar el relleno para todas las celdas en una sola columna DataGridView
Hay una columna en el DGV que es una columna de imagen en la que dibujo un pequeño gráfico para cada fila. Me gustaría eliminar el relleno de todas las celdas de esta columna, por lo que no se aplica relleno a la celda, lo que deja algunos espacios en blanco al final del gráfico.
Cada una de las siguientes cosas que he intentado no elimina el relleno de ninguna celda en la columna, pero tampoco lanza ninguna excepción.
// first attempt
// taken from http://social.msdn.microsoft.com/Forums/eu/winforms/thread/a9227253-8bb4-429a-a700-8a3a255afe4d
deviceGrid.Columns["GProduction"].DefaultCellStyle.Padding = new Padding(0);
// second attempt
DataGridViewCellStyle style = deviceGrid.Columns["Graph"].DefaultCellStyle; // also tried Clone()
style.Padding = new Padding(0);
deviceGrid.Columns["GProduction"].DefaultCellStyle = style;
// third attempt
DataGridViewColumn col = deviceGrid.Columns["Graph"];
DataGridViewImageCell icell = new DataGridViewImageCell();
icell.Style.Padding = new Padding(0);
col.CellTemplate = icell;
sospecho que tal vez el DefaultCellStyle
el relleno de la DataGridView en sí es reemplazar el estilo de celda por defecto que estoy tratando de establecer para la columna, pero si ese es el caso, ¿qué tengo que hacer para evitar esto?
SOLUCIÓN:
Después de seguir el proporcionada por jmh_gr I encontrado el problema era que el DefaultCellStyle
para el propio DataGridView se hereda anteriores en la célula, así que tuve para eliminar el relleno de las propiedades DGV, y aplicarlo a todas las columnas excepto la que no quería relleno.
pasar algún tiempo de calidad con [Estilos de celda en el control de Windows Forms DataGridView] (http://msdn.microsoft.com/en-us/library/1yef90x0.aspx), que detalla la herencia de estilo. Es difícil saber exactamente qué es la pila de estilos sin ver todos los estilos de código y GUI. –
@jmh_gr Gracias por señalarlo, ahora veo que hereda el estilo de DGV DefaultCellStyle LAST, por lo que es ahí donde configuro el relleno, está anulando el valor 0 que establecí en la columna o celda. Creo que la solución es aplicar el relleno de 5px a las celdas que necesitan el relleno y dejar 0 relleno en los estilos predeterminados. – drew010
En lugar de poner [resuelto] en el título y editar la pregunta, publique su solución como una respuesta. En unos días puede volver y marcarlo como aceptado. –