本文介绍了移动节点后 C# Treeview 不刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的 Windows 应用程序中,我有一个树视图.我制作了自定义按钮来向下移动节点.这是单击按钮时发生的情况:
In my windows application I have a treeview. I made custum buttons to move a node downwards. This is what happens when a button is clicked:
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;
代码工作正常,但我的树视图没有更新.我没有看到节点的切换.
The code works fine, but my treeview isn't updated. I don't see the switch of the nodes.
tvCategories.Refresh()
或 tvCategories.Invalidate()
或 tvCategories.Update()
不起作用.
tvCategories.Refresh()
or tvCategories.Invalidate()
or tvCategories.Update()
doesn't work.
有人知道如何解决这个问题吗?
Anybody knows how to fix this?
PS:我使用的是 DevComponents 的第 3 方树状视图.
PS: I'm using a 3rd party treeview of DevComponents.
推荐答案
您可以尝试删除一个节点并重新插入:
You can try to remove one node and to insert it again:
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 );
这篇关于移动节点后 C# Treeview 不刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!