无法以编程方式展开分配给TreeView的TreeNode

时间:2011-06-15 14:23:01

标签: .net winforms treeview c++-cli .net-1.1

我正在使用C ++和.NET 1.1。我有一个问题,一旦将TreeNode对象分配给TreeView,就以编程方式扩展它们。在调试模式下运行以下代码时:

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

我可以看到IsExpanded的{​​{1}}属性在执行第一个myTreeNode时设置为true,但是当节点添加到Expand()myTreeView设置为IsExpanded,第二个false完全没有效果。

任何人都可以解释这种行为吗?我认为有一个TreeView的设置或类似的东西,但我还没有找到类似的东西,并且从MS提供的示例代码应该可以正常工作,所以我可能会遗漏一些非常明显的东西...

2 个答案:

答案 0 :(得分:1)

我建议在调用expand之前添加myTreeNode-> Collapse()。可能是节点认为它在不存在时会被扩展,因此调用expand会被忽略,因为节点认为它已经扩展了......

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

答案 1 :(得分:1)

在您将TreeView.AfterCollapse事件添加到TreeNode之后,您是否尝试过监听TreeView事件以查看其他人是否正在折叠{{3}}?