Cases à cocher uniquement dans les nœuds enfants?

J’ai de nombreux éléments (nœuds) regroupés par catégorie et je souhaite les afficher dans un TreeView où parent sont le texte et les enfants sont des CheckBoxes :

 +-CategoryA(Text) ---.A1(CheckBox) ---.A2(CheckBox) +-CategoryB(Text) ---.B1 ---.B2 ---.B3 +-CategoryC(Text) ---.C1(CheckBox) ---.C2(CheckBox) 

Voici un exemple de code:

 TreeNode testNodeA = new TreeNode("A"); TreeNode testNodeB = new TreeNode("B"); TreeNode testNodeC = new TreeNode("C"); TreeNode[] array = new TreeNode[] { testNodeA, testNodeB, testNodeC }; TreeNode cat = new TreeNode("Categorie X", array); myTreeView.Nodes.Add(cat); 

J’ai déjà trouvé une question similaire ici , mais la solution n’est pas élégante, car elle utilise p/invoke pour appeler un code C ++.

Il pourrait y avoir un moyen plus facile; mais vous pouvez le faire en définissant le mode d’ OwnerDrawAll sur OwnerDrawAll et en décidant ce que le rendu doit être rendu.

Voici un bon exemple de ce que vous voulez presque exactement: http://social.msdn.microsoft.com/forums/en-US/winformdatacontrols/thread/947aaded-6372-4253-8799-2b595f4a39b9/