我有一个带有 TreeView 作为 UI 元素之一的 .Net 桌面应用程序。
我希望能够多选该 TreeView,只是根本不支持。
所以我在树中添加了复选框,我的问题是只有一些项目是可选的,而那些不能一致的级联选择。
有没有办法在显示其他复选框时禁用或隐藏某些复选框?
TreeView 的默认行为是,当Checkboxes属性设置为 true 时,将为所有 TreeNode 显示复选框。
您正在寻找的行为 - 禁用或隐藏某些复选框 - 是对正常行为的自定义修改。您可以创建覆盖默认行为的 TreeView 或 TreeNode 的自定义实现。要尝试的另一件事是使用 TreeView。状态图像列表属性。一些网站可以查看更多信息:
在我最近写的一个编辑器中,我遇到了一个非常相似的问题。最后,我使用了TreeNode
'sBackColor
属性来确定节点的选择状态。然后,我为检查 Shift/Control 键状态的事件编写了一个处理程序,SelectionChanged
以确定所选节点是被添加到选择中/从选择中删除还是创建新选择。当前还选择了一个Generic::List<>
节点来消除任何树搜索。
为什么.NET 没有多选树视图?一个有很多用途,在树视图中打开复选框是一个非常糟糕的选择。