树视图节点重选

问题描述:

我正在致力于紧凑框架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为您的时间。

+0

你编辑你的问题,包括修改该树视图中的实际代码请?向上箭头 – 2012-02-16 11:17:27

+0

我使用此代码: – user1213444 2012-02-24 05:26:30

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); 
+0

非常感谢。这对我很有用。 – user1213444 2012-02-27 06:10:45

+0

不客气。 (这是你接受答案的地方!) – 2012-02-27 07:01:35