Necesitas usar la DataGridViewColumn.AutoSizeMode
propiedad.
Puede utilizar uno de estos valores para las columnas 0 y 1:
AllCells: el ancho de la columna se ajusta para adaptarse al contenido de todas las celdas de la columna, incluida la celda del encabezado.
AllCellsExceptHeader: el ancho de la columna se ajusta para ajustarse al contenido de todas las celdas de la columna, excluyendo la celda del encabezado.
DisplayedCells: el ancho de la columna se ajusta para adaptarse al contenido de todas las celdas de la columna que se encuentran en las filas que se muestran actualmente en pantalla, incluida la celda del encabezado.
DisplayedCellsExceptHeader: el ancho de la columna se ajusta para adaptarse al contenido de todas las celdas de la columna que están en las filas que se muestran actualmente en pantalla, excluyendo la celda del encabezado.
Luego usa el valor de relleno para la columna 2
El ancho de la columna se ajusta de modo que el ancho de todas las columnas llene exactamente el área de visualización del control ...
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
Como señalaron otros usuarios, el valor predeterminado se puede establecer al datagridview
nivel de la DataGridView.AutoSizeColumnsMode
propiedad.
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
podría ser:
this.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
Nota IMPORTANTE:
Si su cuadrícula está vinculada a una fuente de datos y las columnas se generan automáticamente (la AutoGenerateColumns
propiedad se establece en True), debe usar el DataBindingComplete
evento para aplicar el estilo DESPUÉS de que se hayan creado las columnas.
En algunos escenarios (cambiar el valor de las celdas por código, por ejemplo), tuve que llamar DataGridView1.AutoResizeColumns();
para actualizar la cuadrícula.