.NET TreeView: 将对象附加到 TreeNodes

3
在 .NET 的树形视图中,您可以创建节点、子节点和元素。但是我似乎只能给它们命名。
那么,如何将信息(任何对象)附加到一个元素上呢?
1个回答

3
使用 TreeNodeTag 属性将任意的 object 附加到它上面,这不会对 TreeView 产生任何影响。在事件处理程序中特别有用 (例如 AfterSelect),因为它允许你从引用的 TreeNode 回到 "你的" 对象之一。
请记住,TagObject 类型,所以你需要小心如何访问它。下面是一些示例代码,展示了我认为最佳的使用方式:
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);
    }
}

请注意,这是 as 操作符的正确使用方法

哇,速度真快。而且你抓住了我没有仔细阅读文档的问题。对不起-谢谢! - user3599802
@user3599802 没问题。一些.NET类有很多属性和事件,很难确定你想要使用哪一个。我在我的一个项目中添加了一些示例代码,其中节点实际上可能有不同类型的节点附加到它们上。在这种情况下,使用一个“接口”可以真正简化“单击”逻辑。 - Jonathon Reinhart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接