2010-01-25 4 views
3

J'ai un problème avec TreeView dans Visual Studio 2008. J'ajoute TreeView à mon formulaire, je le charge avec des données lors de l'exécution, puis le dernier objet de la liste finit par être plus bas que la barre de défilement. La seule façon de voir cet objet est d'ouvrir l'un des autres nœuds et de le fermer. Est-ce que quelqu'un sait un moyen d'éviter ce problème?Problèmes lors de l'affichage du dernier nœud dans TreeView

+1

Utilise-t-elle css? – Younes

+0

Vous avez beaucoup de succès à trier cela? – Ian

+1

Oui, les commandes SuspendLayout() et ResumeLayout() ont fonctionné. J'ai également utilisé BeginUpdate() avant les SuspendLayout() et EndUpdate() après le ResumeLayout(). – norlando

Répondre

3

Ne pas vu ce comportement avant, semble être un problème de dessin. Pouvez-vous poster du code pour montrer ce que vous faites pour vous assurer qu'il n'y a rien de fou?

Une chose que je pourrais suggérer essayer est d'appeler un treeview.SuspendLayout() et ResumeLayout() une fois que vous avez ajouté vos noeuds. Voyez si cela fait toute la différence.

EDIT

Spotted cette Issue

Suggestions pour fixer sont:

i) La désactivation de styles visuels.
ii) Ajout d'un noeud vide à la fin de la liste.

+0

J'aime votre idée de SuspendLayout et ResumeLayout. J'ai regardé et ce n'est pas fait dans la section de code qui charge le TreeView qui n'affiche pas tous les nœuds, mais est fait dans une autre partie de l'application qui charge la liste très bien. Je ne l'ai pas encore essayé mais je vais essayer d'ajouter ça quand j'ai une chance. – norlando

+0

Généralement, si vous ajoutez beaucoup de nœuds à l'arborescence, cela améliore légèrement les performances, et je pense que cela empêche le dessin après chaque nœud, ce qui réduit le scintillement. – Ian

+2

Les commandes SuspendLayout et ResumeLayout ont fonctionné. – norlando

Questions connexes