移动节点后,C#Treeview不会刷新

时间:2010-02-04 10:22:30

标签: c# winforms treeview

在我的Windows应用程序中,我有一个树视图。我制作了custum按钮来向下移动一个节点。这是单击按钮时发生的情况:

Node destNode = tvCategories.SelectedNode.NextNode;
Node srcNode = tvCategories.SelectedNode;
Node parentNode = srcNode.Parent;

// Switch nodes
parentNode.Nodes[destNode.Index] = srcNode;
parentNode.Nodes[srcNode.Index] = destNode;

代码工作正常,但我的树视图没有更新。我没有看到节点的切换。

tvCategories.Refresh()tvCategories.Invalidate()tvCategories.Update()不起作用。

有人知道如何解决这个问题吗?

PS:我正在使用DevComponents的第三方树视图。

2 个答案:

答案 0 :(得分:1)

您可以尝试删除一个节点并再次插入:

Node destNode = tvCategories.SelectedNode.NextNode;
// Check for null (what happens, if the last node is selected?)

// Switch nodes
destNode.Parent.Nodes.Remove( destNode );
destNode.Parent.Nodes.Insert( tvCategories.SelectedNode.Index, destNode );

答案 1 :(得分:1)

在Treeview上设置焦点将导致我发现的刷新 使用

  

TreeView.Focus()