Vous devez utiliser le DataGridViewColumn.AutoSizeMode
propriété.
Vous pouvez utiliser l'une de ces valeurs pour les colonnes 0 et 1 :
AllCells : La largeur de la colonne s'ajuste pour s'adapter au contenu de toutes les cellules du fichier la colonne, y compris la cellule d'en-tête.
Toutes les cellules sauf l'en-tête : La largeur de la colonne s'ajuste au contenu de toutes les cellules de la colonne, à l'exception de la cellule d'en-tête.
Cellules affichées : La largeur de la colonne s'ajuste à s'ajuste au contenu de toutes les cellules de la colonne qui se trouvent dans les rangées actuellement actuellement affichées à l'écran, y compris la cellule d'en-tête.
DisplayedCellsExceptHeader : La largeur de la colonne s'ajuste pour s'adapter au contenu de toutes les cellules de la colonne qui se trouvent dans les rangées actuellement actuellement affichées à l'écran, à l'exception de la cellule d'en-tête.
Ensuite, vous utilisez le Remplir valeur pour la colonne 2
La largeur des colonnes s'ajuste de manière à ce que la largeur de toutes les colonnes remplisse exactement la zone d'affichage du contrôle...
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
Comme l'ont fait remarquer d'autres utilisateurs, la valeur par défaut peut être fixée à datagridview
niveau avec DataGridView.AutoSizeColumnsMode
propriété.
this.DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
this.DataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
pourrait être :
this.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
Remarque importante :
Si votre grille est liée à une source de données et que les colonnes sont générées automatiquement ( AutoGenerateColumns
définie sur True), vous devez utiliser la propriété DataBindingComplete
événement pour appliquer le style APRÈS ont été créées.
Dans certains scénarios (changer la valeur des cellules par code par exemple), j'ai dû appeler DataGridView1.AutoResizeColumns();
pour rafraîchir la grille.