我正在使用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提供的示例代码应该可以正常工作,所以我可能会遗漏一些非常明显的东西...
答案 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}}?