2011-09-22 1 views
1

TreeView가 있고 동시에 두 개의 노드를 제거하고 싶습니다.동시에 두 개의 TreeNode를 삭제하는 방법

node.Remove(); 

이렇게하면 노드가 삭제되지만이 코드 이후에 다음 노드가 자동으로 선택됩니다. 그걸 막을 수있는 방법이 있습니까? 또는 나에게 더 나은 soloution은 이전 노드가 삭제 된 직후에 다음 노드를 삭제하는 것입니다.

왜 그런지 물을 수 있습니다. 내 프로그램에서는 모든 노드 쌍이 무언가를하기 위해 필요합니다. 그래서 그들 중 하나를 삭제하면 TreeView 컨트롤은 그 쌍의 다음 멤버로 점프 할 것이고 마지막 노드가 삭제되기 때문에 더 이상 그 노드를 찾을 수 없기 때문에 모든 코드가 잘못됩니다.

자세한 정보가 필요하면 알려주십시오.

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

왜 두 번째 (선택한 하나가 아닌) 먼저 삭제하지? – slawekwin

+0

어떻게하면 선택한 노드 바로 뒤에있는 노드를 삭제할 수 있습니까? 도움이되는 색인 생성이 있습니까? 노드 [-1] .Remove()와 같은 것을하고 싶습니다 !! –

+0

참조 : http://msdn.microsoft.com/en-us/library/system.windows.forms.treenodecollection.aspx treeview를 선언하고 사용하는 방법을 보지 않고 더 이상 도울 수 없습니다 ... – slawekwin

답변

1

좋아, 나는 각 노드 쌍에 대한 "_1"와 "_2"에 ... 내 노드 텍스트가 종료되는 운이 좋았다 간단한 컨텍스트 메뉴이게 나를 위해 작동

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

만약이 방법이 아니라면, 전 (前)을 사용할 수있었습니다. parentNode.Nodes.indexOf (selectedNode); // 가능하다면 % 2 – slawekwin

1

간단한 트리 뷰와 함께 :이 soloution 내놓았다 있도록