【问题标题】:how use checkbox that show in control panel program feature如何使用控制面板程序功能中显示的复选框
【发布时间】:2012-01-05 09:18:51
【问题描述】:

我正在用 C# 制作一个 Windows 应用程序。

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

  • 如果未选中树的子复选框,则应填写父复选框
  • 如果选择了所有子项,则应选中父复选框
  • 如果未选中所有子项,则应取消选中父复选框。

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

【问题讨论】:

  • 看来你想用checkBox模拟一个treeView。为什么不改用treeView

标签: c# winforms visual-studio-2008 checkbox


【解决方案1】:

好吧,树视图复选框可以为您省去很多麻烦,因为您可以使用 LINQ 在通过处理 Click 事件单击节点时检查或取消选中所有节点(假设 clickedItem 是点击:

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

此外,从用户界面的角度来看,TreeView 是有意义的。如果您绝对坚持使用单个复选框,那么您只需在内存中构建一个 CheckBox 项目树,可能使用类似于此示例 Tree<T> data type 的东西,然后当您单击复选框时,只需递归遍历树,直到您'已经检查了该框下的每个框。

但请考虑一下您的应用会发生什么。将来您可能有很多选择,以至于您需要一种以编程方式添加它们的方法。您可能需要滚动。您可能需要使整个事情可配置。一旦你添加了所有这些,你将重新实现TreeView

【讨论】:

  • 复选框有一个属性 Threestate=True;通过使用它,我们在复选框中使用三种状态(选中、未选中、中间)
  • 抱歉,我不完全确定这些信息与我的回答有何关联。我的回答中是否有您不理解或希望我改进的地方?
【解决方案2】:

也许您最好使用TreeViewHere's TreeView 单独管理中间检查状态的示例。

【讨论】:

  • 复选框有一个属性 Threestate=True;通过使用它,我们在复选框中使用三种状态(选中、未选中、中间)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多