Necesitas usar la DataGridViewColumn.AutoSizeModepropiedad.
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 datagridviewnivel de la DataGridView.AutoSizeColumnsModepropiedad.
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 AutoGenerateColumnspropiedad se establece en True), debe usar el DataBindingCompleteevento 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.