树视图节点重选
我正在致力于紧凑框架2.0和使用c#。 我有树视图节点重选的问题。情景是这样的: temp0 temp1 temp2 temp3 我在treeview中有一些节点,并使用向上和向下箭头移动节点向上和向下。 但问题是,一旦我选择一个节点并单击向上箭头,节点向上移动 ,我不能选择该节点正下方的节点。 假设我选择了temp3并按向上箭头,这个temp3被temp2取代。 是这样的: temp0 temp1 temp3 temp2 之后,我不能选择temp2,但可以选择temp3和其他节点,不管是否up。树视图节点重选
我使用此代码为向上的箭头:
INT paramPos = this.treeView1.SelectedNode.Index;
如果(paramPos> 0)
{
System.Windows.Forms.TreeNode tempNode = this.treeView1.SelectedNode;
this.treeView1.Nodes [paramPos] = this.treeView1.Nodes [paramPos - 1];
this.treeView1.Nodes [paramPos - 1] = tempNode;
this.treeView1.SelectedNode = this.treeView1.Nodes [paramPos - 1];
的foreach(在this.treeView1.Nodes System.Windows.Forms.TreeNode TNODE)
{
ArgumentNumberInfo AI =(ArgumentNumberInfo)tnode.Tag;
ai.ArgNo = tnode.Index + 1;
}
treeView1.SelectedNode = tempNode;
this.treeView1_AfterSelect(null, null);
}
}
在按下箭头节点后,但我无法选择下面的节点。 节点0
节点1
节点2
节点3
如果选择节点3,然后点击向上箭头节点3将上升和节点会回落,但不要去碰选择节点2。 请给我一些线索为什么会发生。 Thnx为您的时间。
Treeview节点由内部链接列表维护。我认为你用来交换它们的方法混淆了这个链表。下面的代码的说我指的是一部分:
System.Windows.Forms.TreeNode tempNode = this.treeView1.SelectedNode;
this.treeView1.Nodes[paramPos] = this.treeView1.Nodes[paramPos - 1];
this.treeView1.Nodes[paramPos - 1] = tempNode;
尝试在地方上面的代码如下:
System.Windows.Forms.TreeNode tempNode = this.treeView1.SelectedNode;
this.treeView1.Remove(tempNode);
this.treeView1.Insert(paramPos - 1, tempNode);
非常感谢。这对我很有用。 – user1213444 2012-02-27 06:10:45
不客气。 (这是你接受答案的地方!) – 2012-02-27 07:01:35
你编辑你的问题,包括修改该树视图中的实际代码请?向上箭头 – 2012-02-16 11:17:27
我使用此代码: – user1213444 2012-02-24 05:26:30