¿Casillas de verificación sólo en los nodos de los niños?

Tengo muchos artículos (Nodos) agrupados por categoría y quiero mostrarlos en unTreeView donde los padres son texto y los niños sonCheckBoxes :

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

Aquí hay un ejemplo de código:

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);

Ya encontré una pregunta similaraquí, pero la solución no es elegante ya que usap/invoke para llamar a un código C ++.

Respuestas a la pregunta(1)

Su respuesta a la pregunta