Невозможно программно развернуть TreeNode, назначенный TreeView - PullRequest
3 голосов
/ 15 июня 2011

Я работаю с C ++ и .NET 1.1.У меня есть проблема с программным расширением объектов TreeNode, когда они назначены TreeView.При запуске следующего кода в режиме отладки:

TreeView* myTreeView = new TreeView();
TreeNode* myTreeNode = new TreeNode();
myTreeNode->Expand();
myTreeView->Nodes->Add(myTreeNode);
myTreeNode->Expand();

Я вижу, что свойство IsExpanded для myTreeNode имеет значение true при выполнении первого Expand(), но когда узелдобавлен к myTreeView IsExpanded установлен на false, а второй Expand() не имеет никакого эффекта.

Кто-нибудь может объяснить это поведение?Я думаю, что есть настройка для TreeView или чего-то подобного, но я не смог найти ничего подобного, и из примера кода MS обеспечивает, что это должно работать просто отлично, поэтому я, вероятно, упускаю что-то довольно очевидное...

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Вы пытались прослушать событие TreeView.AfterCollapse , чтобы увидеть, не свернулся ли кто-то еще TreeNode после добавления его в TreeView ?

1 голос
/ 16 июня 2011

Я предлагаю добавить myTreeNode-> Collapse () перед вызовом раскрытия. Может случиться так, что узел думает, что он развернут, когда это не так, и поэтому вызов раскрытия будет просто проигнорирован, потому что узел все равно думает, что он уже развернут ...

  TreeView* myTreeView = new TreeView();
  TreeNode* myTreeNode = new TreeNode();
  myTreeNode->Expand();
  myTreeView->Nodes->Add(myTreeNode);
  myTreeNode->Collapse();
  myTreeNode->Expand();
...