Флажки в дочерних узлах?

У меня есть много элементов (узлов), сгруппированных по категориям, и я хочу отображать их в TreeView где родительский текст, а дети – CheckBoxes :

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

Вот пример кода:

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

Я уже нашел аналогичный вопрос здесь , но решение не изящно, поскольку оно использует p/invoke для вызова кода на C ++.

Там может быть более простой способ; но вы можете сделать это, установив режим рисования на OwnerDrawAll и решив, что делать.

Хороший пример почти того, что вы хотите здесь: http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/947aaded-6372-4253-8799-2b595f4a39b9/