Question

J'ai un .Net application de bureau avec un TreeView comme l'un des éléments de l'INTERFACE utilisateur.

Je veux être en mesure de multi-sélectionnez ce TreeView, seulement ce n'est pas du tout supporté.

Donc, je suis ajoutant des cases de l'arbre, Mon problème est que seuls certains éléments sont sélectionnables, et ceux qui ne savent pas ne peut pas constamment cascade de sélections.

Est-il possible de désactiver ou masquer certaines cases tout en affichant des autres?

Était-ce utile?

La solution

Le comportement par défaut de TreeView est que lorsque l' Des cases à cocher la propriété est définie à vrai, que des cases à cocher pour tous les TreeNodes.

Le comportement que vous êtes à la recherche pour - pour désactiver ou masquer certaines cases - est une coutume de modification du comportement normal.Vous pouvez créer une implémentation personnalisée de TreeView ou TreeNode qui remplace le comportement par défaut.Une autre chose à faire serait d'utiliser le TreeView.StateImageList de la propriété.Quelques sites à consulter pour plus d'info:

Autres conseils

J'ai eu un problème similaire dans un éditeur de texte que j'ai écrit récemment.En fin de compte, j'ai utilisé le TreeNode's BackColor propriété afin de déterminer l'état de sélection du nœud.J'ai ensuite écrit un gestionnaire pour l' SelectionChanged l'événement qui a vérifié l'état de la Maj/touches de Contrôle pour déterminer si le nœud sélectionné a été ajouté à/retiré de la sélection ou la création d'une nouvelle sélection.Il y avait aussi un Generic::List<> les nœuds qui ont été actuellement sélectionné pour éliminer toute l'arbre de recherche.

MultiSelectTreeView:

Pourquoi ne le fait pas .NET ont multiselect treeview?Il existe de nombreuses utilisations pour l'un et en activant les cases à cocher dans le treeview est assez moche alternative.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top