在同一窗口中单独显示树节点详细信息

时间:2017-05-24 02:46:44

标签: c# winforms treeview nodes

如何在选择时在同一窗口中显示树节点的详细信息,但与层次树分开 到目前为止,我已经使用以下代码在treeview类中成功显示了详细信息:

  private void buttonCreateTree_Click(object sender, EventArgs e)
    {
        if (xd != null)
        {
            TreeNode rootNode = new TreeNode(xd.Root.FirstNode.ToString());
            AddNode(xd.Root, rootNode);
            treeView1.Nodes.Add(rootNode);

        }
        if (xd == null)
        {
            MessageBox.Show("No saved XML file!");

        }
    }

我读过关于标签的内容,但由于我不太喜欢Windows窗体,我不知道如何正确实现它们。解决方案的正确语法是什么? 更新:树节点的细节是它的子组件,其自定义属性我创建像creationDate,LastAccessDate和LastModifiedDate,因此它需要在同一窗口中显示树节点的子元素,但除了层次结构树之外?这甚至没有意义O.o

1 个答案:

答案 0 :(得分:1)

不确定这是不是你想要的,或者如果你是这样,但你可以玩这个:

在表单中添加Panel panel1并挂钩此事件:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    if (panel1.Controls.Count == 0)
    {
        panel1.Controls.Add(new TreeView());
        panel1.Controls[0].Dock = DockStyle.Fill;
    }
    TreeView tv = panel1.Controls[0] as TreeView;
    if (tv != null)
    {
        tv.Nodes.Clear();

        // option 1 deep copy:
        TreeNode tc = (TreeNode)e.Node.Clone();
        tv.Nodes.Add(tc);

        // option 2 shallow copy, 1 level
        TreeNode tn =  tv.Nodes.Add(e.Node.Text);
        foreach (TreeNode cn in e.Node.Nodes)
            tn.Nodes.Add(cn.Text);
    }
    tv.ExpandAll();
}

选择两个选项之一并尝试..

enter image description here