我有一个窗口表单,它有一个控件treeViewMain,在代码中我有一个treeViews列表,其中包含可变数量的treeViews。我希望treeViewMain能够从列表中显示任何treeView。
treeViewMain=treeViews[0];
但表单没有显示树。此外,我已经彻底检查了列表中的treeViews,它们正确填充。
答案 0 :(得分:0)
显然简单的分配不起作用。根据{{3}},似乎TreeViewNode
的父母必须是唯一的,而“水果”只能坐在一棵树上。
一种解决方法是将列表中TreeView
的父属性设置为treeViewMain
:
treeViews[0].Parent = treeViewMain;
这会将列表中的树视图作为子项放在treeViewMain
中。如果要更改它并从列表中加载下一个项目,则需要确保在分配新父项之前将先前加载的项目的父属性设置为null,如下例所示:
private int count = 0;
private void button_ChooseTreeView_Click(object sender, EventArgs e)
{
if (count > 0)
{
treeViews[count -1].Parent = null;
}
treeViews[count].Parent = treeViewMain;
count++;
}
另一种可能性是克隆每个节点并在每次要将列表项更新到显示时填充treeViewMain