사용자가 편집 할 수없는 Treeview가 있습니다. 새로 고치려고하는 방법은 전체 트리를 지우고 모든 노드 (및 하위)를 다시 추가하는 것입니다. 나는 다음 코드 줄하여이를 달성 해요 : 내가 addAllNodes를 호출하기 전에 업데이트 및 새로 고침 방법을 추가하는 시도했지만 차이를 만들어하지 않은Treeview 새로 고침 질문
treeView.BeginUpdate(); //Freeze drawing
treeView.Nodes.Clear(); //Empty Tree
addAllNodes(); //This adds the nodes for the tree and sets their name/text property
treeView.EndUpdate(); //Unfreeze drawing
. 위 이렇게하면 나에게 오류 가져옵니다
System.ArgumentException: Cannot add or insert the item 'NodeNameHere' in more than one place. You must first remove it from its current location or clone it
내 첫 번째 질문은, 나는이 오류가 발생하는 일을하고 무엇을하고 어떻게 제대로 내 나무를 새로 고칠 수 있습니까?
내 두 번째 질문은 새로 고침 후에 사용자의 확장 노드를 복원 할 수있는 방법이 있습니까? (모든 것이 붕괴되지 않도록)
두 번째 질문이가는 한, 내가 트리 뷰를 지우기 전에 노드를 반복하고 노드가 확장되면 목록에 노드를 추가합니다. 그런 다음 노드를 지우고 다시 추가하고 목록에있는 노드를 확장하여 목록을 반복합니다. – seekerOfKnowledge
내가 잘못 접근하고있었습니다. 나는 계속 진행할 필요가있는 아이들 만 앞섰다. 모든 정적 노드 (addAllNodes()에서 추가됨)는 손댈 필요가 전혀 없습니다. 여전히 모든 확장 된 노드를 기억하는 방법을 원합니다. – Demasterpl
@ John Arlen - 예, 한 번에 디버그 라인을 살펴보고 트리가 지워졌습니다. – Demasterpl