有没有办法强烈键入控件Tag属性?

时间:2011-06-27 05:28:09

标签: c# .net winforms

我有一个TreeView控件,它显示两件事:

1) Folder
2) Item

文件夹包含项目。根文件夹包含所有子文件夹以及不属于文件夹的项目。

我有一个Folder类型与表示文件夹的节点相关联,Item类型与表示项目的节点相关联。

现在,用户可以选择任何节点,并执行不同的操作。我需要能够区分存储在Tag属性中的类型。如果这是不可能的,我可以选择解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用'as'和'is'运算符? e.g。

if(node.Tag is Folder)
{
     Folder f = node.Tag as Folder;
}
else if (node.Tag is Item)
{
     ...
}

答案 1 :(得分:2)

如果需要,您可以轻松制作打字标签:

public class MyTreeNode<T> : TreeNode
{
    public T TypedTag { get; set; }
}