2010-02-05 62 views
-1

在TreeView中,您可以向节点添加标签。在复选框中......你不能。我发现TreeViews很有用,因为这允许我使用名称作为“显示”值和文本以获得更多信息。将名称命名为“Google”,标记为“http://google.com”。CheckBox标签和代码

如何用复选框做到这一点?我知道一个复选框接受和对象,所以我可以简单地创建一个新的类,允许一个字符串和一个标签,并添加这样做?

还是有更简单的方法吗?

+0

这是WinForms或WPF? – Robin 2010-02-05 18:28:38

+0

Winforms。更新了帖子。 – 2010-02-05 18:32:32

+0

顺便说一句,您的问题的正确标题是“CheckBox标签和代码”。 – jason 2010-02-05 18:52:51

回答

3

两个System.Windows.Forms.CheckBox(的WinForms)和System.Windows.Controls.CheckBox(WPF)有Tag财产与公共getset存取。这是因为在每种情况下都有一个提供这种属性的基类(在WinForms中为Control.Tag,在WPF中为FrameworkElement.Tag)。

请注意Tag属性键入为object。任何可以分配给object实例的任何东西都可以分配给Tag属性。特别是,您可以指定一个string的实例。当你读了Tag属性,你必须将它转换回一个string

// checkBox is CheckBox 
string s = (string)checkBox.Tag; 

或者,你可以说

// checkBox is CheckBox 
string s = checkBox.Tag.ToString(); 

最后,你可以从CheckBox继承,并提供键入一个Tag属性作为一个string隐藏基地执行:

class MyCheckBox : CheckBox { 
    public new string Tag { get; set; } 
} 
+0

+1实际上,这适用于从'Control'派生的任何类或控件,而不仅仅是CheckBoxes。 – 2010-02-05 18:48:42