Columnsizemode d'un datagridview [Résolu]

Signaler
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
Bonjour,

Dans un Tabcontrol (1049x789) j'affiche un composant Datagridview (1027x585).
Dans ce Datagridview j'ai de nombreuses colonnes. Et dans chaque colonne j'ai des infos pour chaque ligne. Certaines colonnes vont être composés de 3 caractères, et d'autres de 20 caractères.

Je souhaiterais que les colonnes s'ajustent pour afficher toutes les données des colonnes entièrement sans que le texte soit "caché".

J'ai donc essayé un

 For i As Integer = 0 To DataGridView1.ColumnCount - 1
                       DataGridView1.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
        Next


Le datagridview prends bien toute la place nécessaire (1027), mais certaines colonnes sont trop petites par rapport à leur contenu et certaines sont trop grandes.

J'ai donc remplacé par :
 DataGridView1.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells


Sauf que cette fois ci le datagridview est beaucoup trop grand et j'ai une scrollbar horizontale qui apparait.....

J'ai donc essayé :
DataGridView1.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader


Mais le datagridview devient ridiculement petit.

Je cherche donc a faire un mix entre le fill qui prends la place nécessaire, et le DisplayedCellsExceptHeader qui ajuste correctement les colonnes pour voir les contenus "grands"


Ai-je été assez clair ?

Si vous avez une idée je suis preneur !

Cordialement

1 réponse

Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Statut
Membre
Dernière intervention
13 août 2017
14
Faites un algorithme qui calcule la largeur maximale de chaque colonne.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour et un salut particuler à Zermelo
si, comme on peut le supposer, ce datagridview affiche les champs d'une base de données, on connaît (type de champ) le nombre maxi de caractères.
La largeur graphique correspondante est alors à calculer en fonction de la police utilisée, de sa taille et de son style.
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

Bonjour,

Dommage, je pensais qu'il pouvait y avoir un subterfuge...
Je vais donc me tourner vers cette solution !