Sélection multiple dans un TreeView
-
13-09-2019 - |
Question
J'utilise un contrôle Windows Forms TreeView
dans mon programme. Je voudrais permettre à l'utilisateur de sélectionner plusieurs noeuds au même niveau en faisant glisser leur pointeur de la souris autour (également appelé une sélection « lasso »). Je ne pense pas TreeView
standard permet cela.
Ma question est quelle serait la meilleure façon d'y parvenir? Est-ce que je dois écrire le comportement de sélection personnalisée de mes propres dans peut-être un contrôle personnalisé ou dérivé? Où dois-je commencer?
Je ne suis pas besoin d'une explication détaillée. Juste un petit coup de pouce dans la bonne direction.
La solution
Ce ne va pas être facile à faire avec un contrôle standard WinForms de TreeView
. Le contrôle de TreeView
ne supporte que seule sélection par arbre. Il est impossible de sélectionner simultanément plusieurs noeuds dans l'arborescence.
Pour obtenir ce comportement, vous finirez probablement par avoir besoin de créer une classe très similaire à TreeView
qui a permis à la sélection multiple. Une autre option consiste à tirer de TreeView
et permettre la sélection multiple en remplaçant les comportements spécifiques. Voici un article sur la façon de faire de celle-ci.
Autres conseils
Envisager d'appliquer la sélection multiple dans un contrôle qui prend en charge la sélection multiple comme listview. Si vous suivez les normes que la plupart des utilisateurs de Windows comprennent vous vous retrouverez avec une solution qui est plus facile à mettre en œuvre et plus facile à utiliser.
Si vous avez vraiment besoin de quelque chose que vous développiez devrez peut-être envisager d'élaborer un contrôle personnalisé.