2008-09-02 9 views
3

Ich habe eine .NET-Desktop-Anwendung mit einem TreeView als einer der UI-Elemente.Wie kann ich steuern Kontrollkästchen in einem .Net Forms.TreeView?

Ich möchte in der Lage sein, das TreeView Multi-Auswahl, nur das überhaupt nicht unterstützt wird.

Also ich füge Kontrollkästchen zum Baum, Mein Problem ist, dass nur einige Elemente auswählbar sind, und diejenigen, die nicht sind, können nicht konsistent Kaskaden Auswahlen.

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

Antwort

4

Das Standardverhalten von TreeView ist, dass wenn die Checkboxes-Eigenschaft auf True festgelegt ist, diese Kontrollkästchen für alle TreeNodes angezeigt werden.

Das Verhalten, nach dem Sie suchen - zum 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 Sache zu versuchen wäre, das TreeView zu benutzen. StateImageList Eigentum. Einige Websites für weitere Informationen zu überprüfen:

1

hatte ich ein sehr ähnliches Problem in einem Editor ich kürzlich schrieb. Am Ende habe ich die TreeNodeBackColor Eigenschaft verwendet, um den Auswahlstatus des Knotens zu bestimmen. Ich schrieb dann einen Handler für das Ereignis SelectionChanged, das den Status der Umschalt-/Steuertasten überprüfte, um festzustellen, ob der ausgewählte Knoten der Auswahl hinzugefügt oder aus der Auswahl entfernt oder eine neue Auswahl erstellt wurde. Es gab auch eine Generic::List<> der Knoten, die derzeit keine Baum Suchen zu beseitigen ausgewählt wurden.

0

MultiSelectTreeView:

Warum nicht über .NET, um eine Mehrfachauswahl treeview? Es gibt so viele Anwendungen für einen und das Aktivieren von Kontrollkästchen in der Baumansicht ist eine ziemlich miese Alternative.