【问题标题】:.NET TreeView: Attach objects to TreeNodes.NET TreeView:将对象附加到 TreeNode
【发布时间】:2014-05-03 18:56:01
【问题描述】:

在 .NET 树视图中,您可以创建节点、子节点和元素。 我似乎能做的就是给他们起名字。

但是如何将信息(任何对象)附加到元素上?

【问题讨论】:

    标签: c# .net vb.net treeview treenode


    【解决方案1】:

    使用TreeNodeTag 属性将任意object 附加到它。

    这不会以任何方式影响TreeView。它在您的事件处理程序(例如AfterSelect)中特别有用,因为它允许您从引用的TreeNode 中引用“您的”对象之一。

    请记住,Tag 的类型为 Object,因此您需要小心访问它的方式。下面是一些示例代码,展示了(我觉得)它的最佳使用方式:

    public Form1()
    {
        InitializeComponent();
        theTree.AfterSelect += (sender, args) => ShowSelectedNode();
    }
    
    private void ShowSelectedNode() {
        var node = theTree.SelectedNode;
    
        var viewable = node.Tag as IViewable;
        if (viewable != null) {
            viewable.View(this);
        }
    }
    

    注意这是correct use of the as operator

    【讨论】:

    • 哇,真快。你发现我没有正确阅读文档。抱歉 - 谢谢!
    • @user3599802 没问题。像这样的一些 .NET 类具有 很多 属性和事件,并且很难确定您想要使用哪一个。我从我的一个项目中添加了一些示例代码,其中节点实际上可能附加了不同类型的节点。在这种情况下,使用interface 确实清除了“点击”逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多