我正在使用 C++ 和 .NET 1.1。一旦将 TreeNode 对象分配给 TreeView,我就会遇到以编程方式扩展 TreeNode 对象的问题。在 Debug模式下运行以下代码时:
TreeView* myTreeView = new TreeView();
TreeNode* myTreeNode = new TreeNode();
myTreeNode->Expand();
myTreeView->Nodes->Add(myTreeNode);
myTreeNode->Expand();
在执行第一个 Expand()
时,我可以看到 myTreeNode
的 IsExpanded
属性设置为 true
>,但是当节点添加到myTreeView
时,IsExpanded
设置为false
,而第二个Expand()
完全没有影响。
谁能解释这种行为?我在想 TreeView 或类似的东西有一个设置,但我找不到类似的东西,并且从 MS 提供的示例代码中这应该工作得很好,所以我可能遗漏了一些非常明显的东西...
最佳答案
我建议在调用展开之前添加一个 myTreeNode->Collapse()。可能是该节点认为它已扩展,但实际上并未扩展,因此调用 expand 将被忽略,因为该节点认为它已经扩展了...
TreeView* myTreeView = new TreeView();
TreeNode* myTreeNode = new TreeNode();
myTreeNode->Expand();
myTreeView->Nodes->Add(myTreeNode);
myTreeNode->Collapse();
myTreeNode->Expand();
关于.net - 无法以编程方式展开分配给 TreeView 的 TreeNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359241/