2012-02-16 107 views
0

我正在致力於緊湊框架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

回答

1

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