如何使用复选框显示在控制面板程序功能



我正在用c#制作一个windows应用程序。

我想使用windows 7控制面板程序功能中的复选框。

  • 如果树的子复选框都没有被选中,那么父复选框应该被填充
  • 如果选中了所有子项,则应选中父复选框
  • 如果所有子项都未选中,则父复选框也应取消选中。

我使用单独的复选框(如checkboxImageList,在谷歌中找到),而不是treeview复选框。

好吧,一个树视图复选框会节省你很多麻烦,因为你可以使用LINQ来检查或取消选中所有节点当一个节点被点击时,通过处理点击事件(让我们说clickedItem是被点击的节点:

foreach (TreeNode node in clickedItem.Nodes.ToList())
{
    node.IsSelected = clickedItem.IsSelected;
}

同样,从用户界面的角度来看,TreeView是有意义的。如果您绝对坚持使用单个复选框,那么您只需在内存中构建CheckBox项的树,也许使用类似示例Tree<T>数据类型的东西,然后当您单击复选框时,只需递归地遍历树,直到选中该复选框下的每个框。

但是考虑一下你的应用程序会发生什么。将来你可能会有很多选项,你需要一种方式来编程地添加它们。你可能需要滚动。您可能需要使整个东西可配置。一旦你添加了所有这些,你就可以重新实现TreeView了。

也许你最好使用TreeView。下面是一个TreeView单独管理中间检查状态的示例。

最新更新