我正在使用Windows窗體TreeView
類,其中包含一組TreeNode
s。 TreeNode
可以有子節點。Treeview不會刷新以顯示從一個父節點移動到另一個父節點的子節點
我有2個個子節點(節點1和節點2)
Node1上有2個子節點(child1和的child2)
我有一個函數,將允許用戶選擇任何節點和移動根節點它到另一個節點:
TreeNode SelectNode = this.TreeView1.SelectedNode;
TreeNode DestNode = SelectedNewNode(); //function to select a new node
SelectedNode.Remove();
DestNode.Nodes.Add(SelectedNode);
this.TreeView1.Refresh();
當這種執行,當前選擇的節點(的child2)從其當前父 (節點1)中除去,並加入到節點2。
但是,TreeView
控件的Refresh()
方法未顯示child2在Node2下。如果我調試它並查看TreeView
中的Nodes
集合,我確實看到child2在Node2下。
任何人都可以告訴我爲什麼Refresh()
方法不會重新繪製新的父對子映射? 有沒有辦法告訴TreeView
重新繪製新的映射?
這是一個錯誤的帖子,它應該是SelectNode。在刪除子節點並將其添加到新父項之前,我不調用BeginUpdate方法。我已經清除了treeview中的節點集合,然後重新創建它。這似乎工作。 – mike 2010-03-24 13:40:08