在树视图 c# 中向上移动树节点的处理程序崩溃
我有一个事件处理程序,可以将选定的树节点向上移动。我不知道为什么评论中会出现崩溃。 treeviewdocxml 是一个树视图对象,来自 System.Windows.Forms
treeViewDocXml.BeginUpdate();
TreeNode sourceNode = treeViewDocXml.SelectedNode;
if (sourceNode.Parent == null)
{
return;
}
if (sourceNode.Index > 0)
{
sourceNode.Parent.Nodes.Remove(sourceNode);
sourceNode.Parent.Nodes.Insert(sourceNode.Index - 1, sourceNode); //HERE CRASH
}
treeViewDocXml.EndUpdate();
i have a event handler that moves the selected treenode up. I don't know why is crash in the line with comented.
treeviewdocxml is a treeview object, from System.Windows.Forms
treeViewDocXml.BeginUpdate();
TreeNode sourceNode = treeViewDocXml.SelectedNode;
if (sourceNode.Parent == null)
{
return;
}
if (sourceNode.Index > 0)
{
sourceNode.Parent.Nodes.Remove(sourceNode);
sourceNode.Parent.Nodes.Insert(sourceNode.Index - 1, sourceNode); //HERE CRASH
}
treeViewDocXml.EndUpdate();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为您在从树中删除
sourceNode.Index
后才引用它。尝试在删除索引之前将索引存储在变量中:[更新]
对父节点的引用也不正确,因此我在示例中修复了该问题。
It's because you're referencing
sourceNode.Index
after you removed it from the tree. Try storing the index in a variable before removing it:[Update]
The reference to parent node was incorrect as well, so I fixed that in the example.