我正在使用Windows窗体TreeView
类,其中包含一组TreeNode
s。 TreeNode
可以有子节点。Treeview不会刷新以显示从一个父节点移动到另一个父节点的子节点
我有2个个子节点(节点1和节点2)
Node1上有2个子节点(child1和的child2)
我有一个函数,将允许用户选择任何节点和移动根节点它到另一个节点:
TreeNode SelectNode = this.TreeView1.SelectedNode;
TreeNode DestNode = SelectedNewNode(); //function to select a new node
SelectedNode.Remove();
DestNode.Nodes.Add(SelectedNode);
this.TreeView1.Refresh();
当这种执行,当前选择的节点(的child2)从其当前父 (节点1)中除去,并加入到节点2。
但是,TreeView
控件的Refresh()
方法未显示child2在Node2下。如果我调试它并查看TreeView
中的Nodes
集合,我确实看到child2在Node2下。
任何人都可以告诉我为什么Refresh()
方法不会重新绘制新的父对子映射? 有没有办法告诉TreeView
重新绘制新的映射?
这是一个错误的帖子,它应该是SelectNode。在删除子节点并将其添加到新父项之前,我不调用BeginUpdate方法。我已经清除了treeview中的节点集合,然后重新创建它。这似乎工作。 – mike 2010-03-24 13:40:08