2011-09-22 42 views
1

我有一個TreeView,我想同時刪除它的2個節點。如何在同一時間刪除兩個TreeNode

node.Remove(); 

這將刪除節點,但是這個代碼之後的下一個節點會自動選擇。有沒有辦法阻止?或者更好的解決方案將刪除下一個節點,在其上一個節點被刪除後。

你可能會問爲什麼。在我的程序中,每對節點都需要做某些事情。所以如果我刪除其中的一個,TreeView控件將跳轉到該對的下一個成員,並且由於最後一個被刪除,所有我的代碼都會出錯,因爲它無法再找到該節點。

如果您需要更多信息,請讓我知道。

+0

爲什麼不先刪除第二個(未選定的)? – slawekwin

+0

如何刪除選定節點之後的節點?有什麼索引可以幫助嗎?我想做點像node [-1] .Remove()! –

+0

看到:http://msdn.microsoft.com/en-us/library/system.windows.forms.treenodecollection.aspx 沒有看到你如何申報和使用treeview我忍不住更多... – slawekwin

回答

1

好吧,我是幸運的......我的節點文本結尾的「_1」與「_2」爲每對節點的,所以我想出了這個soloution:

  if (fileText.EndsWith("_1")) 
      { 
       selectedFile.NextNode.Remove(); 
       selectedFile.Remove(); 
      } 
      else 
      { 
       selectedFile.PrevNode.Remove(); 
       selectedFile.Remove(); 
      } 
+1

如果不是這樣,你可以使用前。 parentNode.Nodes.indexOf(selectedNode); //可能帶有%2 – slawekwin

1

通過簡單的樹狀視圖和一個簡單的上下文菜單這適用於我

if (tvwACH.SelectedNode.Text == "Child") 
{ 
    tvwACH.SelectedNode.NextNode.Remove(); 
    tvwACH.SelectedNode.Remove(); 
}