Hi Habak,
dies unterstützt leider das Standard-TreeView Control (direkt) nicht.
Du könntest aber mittels "DrawMode = TreeViewDrawMode.OwnerDrawAll" alle Elemente des Trees (d.h. der einzelnen Nodes) mittels des DrawNode-Ereignisses selber zeichnen.
Und mittels "e.DrawDefault = true" kannst du für die Nodes, die du nicht anders zeichnen willst, dies wiederum vom System erledigen lassen.
Als Alternative könntest du das
Advanced TreeView verwenden - du mußt dich jedoch dann mit der "Model-View architecture" auseinandersetzen, d.h. Trennung von Daten und Darstellung.
Das partielle Verstecken von CheckBoxen wird übrigens unter
Question (modified) erklärt.