使用什么控制

时间:2010-05-07 07:07:46

标签: winforms usability

我有一个我需要根据用户选择的选项进行过滤的设备列表。一种这样的选择是冷却:当用户选择冷却时,仅显示具有冷却的设备。如果未选择冷却,则会显示所有设备(带或不带冷却)。

我想知道我最好用什么样的控制。我的感觉是复选框不是一个好的控件,因为它代表:

  

没有冷却(未检查)/仅冷却   (选中)

虽然我想要

  

冷却,不冷却(未检查)/   只冷却(检查)。

这里最好使用哪种控制?

感谢。

3 个答案:

答案 0 :(得分:1)

我看到三个选项,按优先顺序递减:

  • 使用ThreeState property使用三态复选框(可以为灰色的复选框)。这里的主要优点是更少的杂乱,更少的阅读和更少的点击。如果它们在开始时处于灰色状态,则用户将清楚这种状态是可能的,并且与通常的复选框行为的偏差应该不是很大的问题。

  • 使用带有“是”,“否”和“不关心”选项的下拉列表。如果部分或全部选项最初都是明确的“是”或“否”,那么这可能是更好的选择。

  • 使用具有三列的单选按钮网格。丑陋,需要一些思考来理解它。我不会这样做。

答案 1 :(得分:1)

不要忘记.NET复选框类可以设置为具有三种状态

CheckBox.ThreeState = TRUE;

编辑这会为CheckBox.Checked提供真或假,并为CheckBox.CheckState选中,取消选中或不确定。

答案 2 :(得分:1)

复选框是正确的控件。你只需要正确地标记它:“仅包括设备:[]冷却。”这对我来说似乎毫不含糊,取消检查意味着不应用过滤器,包括有冷却和不冷却的设备。通常,用户将空白(包括未选中)解释为“不对此条件进行查询/过滤”,而不是“反转此查询过滤条件”。

如果您不相信,请使用单选按钮(如果空间紧张,则使用下拉列表):“仅包括设备:()冷却,()有冷却或无冷却。”

如果您想要包含过滤无冷却的选项,则必须使用单选按钮或下拉列表:“仅包括设备:()使用冷却,()不冷却。”同样,如果您需要显示超过两个州,你必须使用单选按钮或下拉列表:“仅包括设备:()冷却,()不冷却, ()有或没有冷却。“

你是正确的,使用三态复选框会让人感到困惑。混合状态用于表示“某些是,有些不是”而不是“是和否”.Windows UX交互指南明确禁止将复选框的混合状态用作单个项目的第三个状态(在这种情况下,您使用过滤器) ),或让用户选择混合状态(第49页)。

一般情况下应避免使用。