C# 从其他树视图引用树视图
我有一个窗口窗体,它有一个控制treeViewMain,在代码中我有一个treeViews列表,它有可变数量的treeViews。我想让treeViewMain显示列表中的任何一个treeViewC# 从其他树视图引用树视图,c#,winforms,treeview,C#,Winforms,Treeview,我有一个窗口窗体,它有一个控制treeViewMain,在代码中我有一个treeViews列表,它有可变数量的treeViews。我想让treeViewMain显示列表中的任何一个treeView treeViewMain=treeViews[0]; 但是表单没有显示树。我还彻底检查了列表中的TreeView,它们的填充正确 显然,简单的分配不起作用。根据这项研究,一个TreeViewNode的父节点似乎必须是唯一的,而且“果实”只能位于一棵树上 一种解决方法是将列表中TreeView的父属性
treeViewMain=treeViews[0];
但是表单没有显示树。我还彻底检查了列表中的TreeView,它们的填充正确 显然,简单的分配不起作用。根据这项研究,一个
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
,每次您要将列表项更新到显示时,显然简单的分配不起作用。根据这项研究,一个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++;
}
另一种可能是克隆每个节点并填充
treeviwmain
,每次您要将列表项更新到显示时您是否能够解决问题?是的,我通过清除treeviwmain的所有子节点,然后添加treeViews的子节点[0]来解决问题到treeViewMain@MongZhu你能解决你的问题吗?是的,我通过清除treeViewMain的所有孩子,然后将treeViews[0]的孩子添加到treeViewMain@MongZhu来解决问题