2008-11-03 6 views
2

Dans l'événement NodeMouseClick, j'essaie de charger des objets à partir de Node.Tag. Avant de le faire, je vérifie e.Node.IsSelected. Lorsqu'il est exécuté régulièrement IsSelected est faux .... si je colle un point d'arrêt là-bas et que je vérifie e.node.Isselected, la valeur change sur moi et devient vraie. Pourquoi?Aide avec winform treeview isSelected weirdness

Répondre

3

L'événement NodeMouseClick est déclenché avant que la sélection ne change réellement. (Lorsque vous cliquez deux fois sur le même nœud, la deuxième fois e.Node.IsSelected aura certainement été vraie.)

Vous pourriez essayer de gérer l'événement AfterSelect, même si cela sera également déclenché lors de l'utilisation du clavier pour naviguer dans le treeview, qui peut même être meilleur pour vos besoins.

+0

Eh bien, il y a mon problème. – nportelli

0

J'ai essayé de recréer votre problème mais je n'ai pas pu. Lorsque je clique sur un nœud pour la première fois, cette valeur est toujours fausse, que je mette ou non un point d'arrêt. Si je clique sur un nœud la deuxième fois, la valeur est vraie.

Si le nœud est sélectionné par défaut, la valeur sera true, mais sinon, il retournera toujours false lors du premier clic.

+0

Je vais admettre que ce que je fais est très déconcertant et très mauvaise conception de l'interface utilisateur. Mais oui je vérifie une fois et la valeur est fausse, une 2ème fois, sans marcher et ça devient vrai. J'ai trouvé ça bizarre. – nportelli