【问题标题】:Referencing the TreeView from other TreeViews从其他 TreeView 引用 TreeView
【发布时间】:2017-08-16 06:07:25
【问题描述】:

我有一个具有控件 treeViewMain 的窗口窗体,并且在代码中我有一个具有可变数量的 treeViews 的 treeViews 列表。我希望 treeViewMain 显示列表中的任何 treeView。

treeViewMain=treeViews[0];

但表单没有显示树。我还彻底检查了列表中的树视图,它们填充正确。

【问题讨论】:

  • 你能解决你的问题吗?
  • 是的,我通过清除 treeViewMain 的所有孩子然后将 treeViews[0] 的孩子添加到 treeViewMain @MongZhu 解决了这个问题

标签: c# winforms treeview


【解决方案1】:

显然简单的分配不起作用。根据this post 的说法,TreeViewNode 的父母似乎必须是唯一的,并且“水果”只能坐在一棵树上。

一种解决方法是将列表中TreeView 的父属性设置为treeViewMain

treeViews[0].Parent = treeViewMain;

这会将列表中的树视图作为子视图放入treeViewMain。如果要更改它并从列表中加载下一项,则需要确保先前加载的项的 parent 属性设置为 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2012-06-16
    • 2018-02-23
    • 2010-11-17
    相关资源
    最近更新 更多