Musisz skorzystać z DataGridViewColumn.AutoSizeMode
nieruchomości.
Możesz użyć jednej z tych wartości dla kolumny 0 i 1:
AllCells: szerokość kolumny dostosowuje się do zawartości wszystkich komórek w kolumnie, w tym do komórki nagłówka.
AllCellsExceptHeader: Szerokość kolumny jest dostosowywana do zawartości wszystkich komórek w kolumnie, z wyjątkiem komórki nagłówka.
DisplayedCells: szerokość kolumny jest dostosowywana w celu dopasowania zawartości wszystkich komórek w kolumnie, które są w wierszach aktualnie wyświetlanych na ekranie, w tym komórki nagłówka.
DisplayedCellsExceptHeader: szerokość kolumny jest dostosowywana do zawartości wszystkich komórek w kolumnie, które są w wierszach aktualnie wyświetlanych na ekranie, z wyjątkiem komórki nagłówka.
Następnie użyj wartości Fill dla kolumny 2
Szerokość kolumny jest dostosowywana w taki sposób, aby szerokości wszystkich kolumn dokładnie wypełniały obszar wyświetlania kontrolki ...
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
Jak zauważyli inni użytkownicy, wartość domyślną można ustawić na datagridview
poziomie DataGridView.AutoSizeColumnsMode
właściwości.
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
możliwe:
this.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
Ważna uwaga:
Jeśli twoja siatka jest powiązana ze źródłem danych, a kolumny są generowane automatycznie ( AutoGenerateColumns
właściwość ustawiona na True), musisz użyć DataBindingComplete
zdarzenia, aby zastosować styl PO utworzeniu kolumn.
W niektórych scenariuszach (na przykład zmiana wartości komórek według kodu) musiałem wywołać, DataGridView1.AutoResizeColumns();
aby odświeżyć siatkę.