Frage

Ich habe eine .Net-Desktopanwendung mit einer TreeView als einem der UI-Elemente.

Ich möchte diese TreeView mehrfach auswählen können, nur wird das überhaupt nicht unterstützt.

Deshalb füge ich dem Baum Kontrollkästchen hinzu. Mein Problem besteht darin, dass nur einige Elemente auswählbar sind und diejenigen, bei denen dies nicht der Fall ist, die Auswahl nicht konsistent kaskadieren können.

Gibt es eine Möglichkeit, einige Kontrollkästchen zu deaktivieren oder auszublenden, während andere angezeigt werden?

War es hilfreich?

Lösung

Das Standardverhalten von TreeView ist das, wenn die Kontrollkästchen Wenn die Eigenschaft auf „true“ gesetzt ist, werden Kontrollkästchen für alle TreeNodes angezeigt.

Das gesuchte Verhalten – das Deaktivieren oder Ausblenden einiger Kontrollkästchen – ist eine benutzerdefinierte Änderung des normalen Verhaltens.Sie können eine benutzerdefinierte Implementierung von TreeView oder TreeNode erstellen, die das Standardverhalten überschreibt.Eine andere Möglichkeit wäre die Verwendung von TreeView.StateImageList Eigentum.Weitere Informationen finden Sie auf einigen Websites:

Andere Tipps

Ich hatte ein sehr ähnliches Problem in einem Editor, den ich kürzlich geschrieben habe.Am Ende habe ich das verwendet TreeNode'S BackColor Eigenschaft, um den Auswahlstatus des Knotens zu bestimmen.Ich habe dann einen Handler dafür geschrieben SelectionChanged Ereignis, das den Status der Umschalt-/Strg-Tasten überprüfte, um festzustellen, ob der ausgewählte Knoten zur Auswahl hinzugefügt/entfernt wurde oder eine neue Auswahl erstellt wurde.Es gab auch eine Generic::List<> der Knoten, die aktuell ausgewählt wurden, um jegliche Baumsuche zu vermeiden.

MultiSelectTreeView:

Warum verfügt .NET nicht über eine Mehrfachauswahl-Baumansicht?Es gibt so viele Verwendungsmöglichkeiten für einen, und das Aktivieren von Kontrollkästchen in der Baumansicht ist eine ziemlich miese Alternative.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top