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

问题描述:

我正在使用C++和.NET 1.1。一旦将这些对象分配给TreeView,我就遇到了以编程方式展开TreeNode对象的问题。当运行在调试模式下面的代码:无法以编程方式展开分配给TreeView的TreeNode

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

我可以看到的myTreeNodeIsExpanded属性设置为true做第一Expand()的时候,但是当节点添加到myTreeViewIsExpanded设置为false,和第二个Expand()完全没有效果。

任何人都可以解释这种行为吗?我想有一个TreeView或类似的设置,但我一直没能找到类似的东西,从MS提供的这个例子代码应该可以正常工作,所以我可能会丢失一些很明显的东西...

+0

我已经在C#和.NET 2中做过很多次了,并确认它在那里完美地工作。也许是一个错误? – leppie 2011-06-15 14:28:22

+0

2011年使用.NET 1.1的原因是什么?!?使用至少2.0 – abatishchev 2011-07-20 14:48:25

+0

不能展开没有孩子的节点:我真的认为这会工作 见http://*.com/questions/8242647/empty-expandable-treenode-in-c-sharp – 2013-09-25 10:55:34

我建议在调用expand之前添加一个myTreeNode-> Collapse()。这可能是因为节点认为当它不是,因此调用扩展,因为节点认为它已经扩展反正只会被忽略它展开......

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

,但没有运气。 =( – 2011-06-16 07:18:08

您是否尝试过侦听TreeView.AfterCollapse事件在将其添加到TreeView之后,看看其他人是否正在崩溃TreeNode