2008-09-11 27 views
4

que j'ai trouvé quelques exemples en utilisant l'api Win32 ou simulant la combinaison de touches^+ (ctrl - +) using SendKeys, mais au moins avec la méthode SendKeys ListView saisit le curseur et fixe à un sablier jusqu'à ce que je appuyez sur le bouton de démarrage sur mon clavier. Quelle est la façon la plus propre de le faire?Comment puis-je redimensionner automatiquement les colonnes ListView par programmation?

+0

Pouvez-vous être plus précis sur ce que signifie «redimensionner automatiquement»? Voulez-vous dire que vous voulez qu'ils se mélangent lorsque la fenêtre (et la vue liste) changent de taille, ou voulez-vous les redimensionner en fonction de la longueur des données qu'ils affichent? – Andrew

+0

Je veux qu'ils soient redimensionnés en fonction de la longueur des données qu'ils affichent. – Luke

Répondre

17

On dirait un appel à myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) fera ce que vous voulez. Je pense, juste l'appeler après avoir ajouté un élément.

Plus d'info here

+1

Devrait être ColumnHeaderAutoResizeStyle :: ColumnContent – Julien

+0

Le lien est mort. –

+0

@CareyGregory merci, lien mis à jour –

1

Selon MSDN, si vous définissez la largeur de colonne à -1 alors il autoSize au plus grand élément

+0

Cela ne semble pas fonctionner pour moi. J'ajoute listviewitems à l'exécution et les colonnes restent maigres. – Luke

+0

Bizarre. Peut-être que le ListView doit être visible et avec les éléments déjà ajoutés. Ou peut-être un appel à Application.DoEvents pourrait faire l'affaire? Vous pouvez toujours essayer d'envoyer LVSCW_AUTOSIZE vous-même en utilisant P/Invoke: http://vbnet.mvps.org/index.html?code/comctl/lvcolumnautosize.htm (lien pour VB6) – rpetrich

+0

Avez-vous essayé d'encapsuler les mises à jour de la liste dans BeginUpdate()/EndUpdate() entre parenthèses? Peut-être que l'astuce -1 fonctionne lorsque vous mettez fin à la mise à jour, déclenchant un recalcul de la façon dont la vue de la liste est affichée. – Andrew

0
boucle

dans toutes les colonnes et la largeur fixée à -1 après l'ajout de contenu.