在TreeView中,您可以向节点添加标记。在复选框中...你不能。我发现TreeViews很有用,因为这允许我使用“显示”值的名称和附加信息的文本。例如,名称为“Google”,标记为“http://google.com”。
如何使用复选框执行此操作?我知道一个复选框接受和对象,所以我可以简单地创建一个允许字符串和标记的新类,并添加这样做吗?
或者有更简单的方法吗?
答案 0 :(得分:3)
System.Windows.Forms.CheckBox
(WinForms)和System.Windows.Controls.CheckBox
(WPF)都有一个Tag
属性,包含公共get
和set
个访问者。这是因为在每种情况下都有一个提供这种属性的基类(在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; }
}