ColumnHeaderAutoResizeStyle

Signaler
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour à tous,

J'ai créé une classe CListView qui hérite de ListView. Dans cette classe entre autres, j'ai créé une méthode AjusterColonnes() qui parcourt la ListView et adapte la largeur des colonnes selon le contenu. Jusque là, pas de problème.

J'aimerais en fait que cette méthode puisse élargir chaque colonne selon le titre si celui-ci est plus large que le contenu de la colonne, et selon le contenu si ce dernier est plus large que le titre de la colonne.

J'ai tenté de trouver une solution en comparant le ColumnHeaderAutoResizeStyle.HeaderSize au ColumnHeaderAutoResizeStyle.ColumnContent, sans suite.

Quelqu'un a t-il déjà développé ou trouvé un "algo qui va bien" ? Comment pourrais-je faire ?

Merci d'avance.
Cordialement.

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
en fait... il suffit de mettre -2 dans la largeur de la colonne et tout devrait fonctionner correctement.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
précision : on met -2 après avoir ajouter le contenu

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

Salut,

Je ne comprends pas trop l'intérêt du -2 dans mon cas. Comment voiriez-vous le code selon votrez méthode ?
Pour ma part, j'utilise les enum de la classe ColumnHeaderAutoResizeStyle, à savoir ColumnContent, HeaderSize ou None. Ces trois cas ne retournent pas un int, donc je ne pense pas que -2 irait.

Pourriez-vous me donner un exemple de votre méthode avec -2 ?

Merci d'avance.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
à la création de tes colonnes :
   // Create columns for the items and subitems.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.listview(VS.80).aspx

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]