选择全部或全部取消选择复选框的最佳模式是什么?有人能想出更好的办法把它以这种形式:
最有用的选择所有/取消选中所有复选框格式
回答
我说实话,我从来没有喜欢过使用复选框作为“全选”选项的想法,即使你看到它很多。这不是一个要挑选的物品,而是一个动作。如果您选择全部,然后开始取消选择列表中的单个项目,则全选复选框的“已选中”状态会变得非常混乱。我更喜欢使用一个简单但明显的链接/按钮,在点击“全选”和“全选”之间切换。当单个项目被取消选择时,没有一种状态可以让你感到困惑,并且按下按钮的结果从未被怀疑。操作的独特性使得切换来回切换是完全合理的(而不是使用两个始终可见的按钮;一个用于全选,一个用于全选),因为您距离所需行为最多两次点击。它从视觉上将这个“行动”从单个项目中分离出来,防止错误和区分行为。
我会说,这是做出选择的最直观的方式/取消选择所有。但我也看到一些使用链接,但我更喜欢这一点。
具有执行操作而不是指定离散选项的检查按钮不是非常可用的IMO。 – 2009-02-06 22:29:08
只需将“全选”复选框靠近左边框即可。也许可以改变文字,如“所有以前的游戏”等,以清楚地说明选择了“全部”。
如果您可以使用列表格式化对话框,我喜欢“列表标题中的复选框”方法(并且大多数用户直觉地知道如何使用它)。
如果你不想使用列表,我觉得一个按钮或超链接(即从“全选”,以“不选”切换将工作比另一个复选框,这是很难更好在所有其他复选框中取消选中,同时取消选中“全选”复选框并不一定会为用户取消“不选中”功能。
下面是WinForms中的用户控制逻辑,用于实现@ nezroy的答案。这可让您指定InitialAction [SelectAll或DeselectAll之一]。
Imports System.ComponentModel
''' <summary>
''' A control which allows the user to toggle back-and-forth
''' between selecting all of something, or de-selecting all of something.
''' </summary>
Public Class uscSelectDeselectAll
#Region "Events"
Public Event CurrentAction_Changed()
#End Region
#Region "Enums"
Public Enum SelectAction
SelectAll
DeselectAll
End Enum
#End Region
#Region "Module-level variables"
Private _initialAction As SelectAction
Private _currentAction As SelectAction
#End Region
#Region "Properties"
Public Property CurrentAction As SelectAction
Get
Return _currentAction
End Get
Private Set(value As SelectAction)
_currentAction = value
SetActionLinkText()
End Set
End Property
<Browsable(True)>
<EditorBrowsable(EditorBrowsableState.Always)>
<DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
Public Property InitialAction As SelectAction
Get
Return _initialAction
End Get
Set(value As SelectAction)
_initialAction = value
SetActionLinkText()
End Set
End Property
#End Region
#Region "Procedures"
Private Sub SetActionLinkText()
If _currentAction = SelectAction.SelectAll Then
llActionText.Text = "Select All"
ElseIf _currentAction = SelectAction.DeselectAll Then
llActionText.Text = "Deselect All"
Else
Throw New InvalidEnumArgumentException("Invalid SelectActionProvided.")
End If
End Sub
Private Sub ToggleAction()
If CurrentAction = SelectAction.SelectAll Then
CurrentAction = SelectAction.DeselectAll
ElseIf CurrentAction = SelectAction.DeselectAll Then
CurrentAction = SelectAction.SelectAll
Else
Throw New Exception("CurrentAction has the invalid value: " & CurrentAction.ToString())
End If
End Sub
#End Region
#Region "Event Handlers"
Private Sub llActionText_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles llActionText.LinkClicked
RaiseEvent CurrentAction_Changed()
ToggleAction()
End Sub
Private Sub uscSelectDeselectAll_Load(sender As Object, e As EventArgs) Handles Me.Load
CurrentAction = InitialAction
End Sub
#End Region
End Class
- 1. jQuery取消选中所有复选框
- 2. 取消选中所有复选框
- 3. javascript:取消选中所有复选框
- 4. 选择/取消选中XAML中“CheckListBox”中的所有复选框
- 5. 选择/取消选中GroupBox中的所有复选框
- 6. 选择所有复选框
- 7. 选择所有复选框
- 8. 选择所有复选框
- 9. 复选框切换选择所有/取消选择所有问题
- 10. 选择/取消HTML表格的所有复选框
- 11. 选择所有选中的复选框
- 12. 选择/取消选择所有复选框元素AngularJS
- 13. 角2选择/取消选择所有复选框
- 14. 选择和取消选择所有复选框
- 15. 添加选择/取消选择所有复选框到Wicket DataTable
- 16. 如何选择/取消选择所有复选框?
- 17. 选择所有和取消选择复选框与jquery
- 18. 检查所有/取消选中所有复选框js
- 19. 选择/取消选择不在动态表格行中的所有复选框
- 20. 选择所有,取决于复选框
- 21. 取消所有复选框,除了有类的复选框吗?
- 22. Listview复选框选择所有/选择所有C#4.0
- 23. 选中或取消选中所有启用的复选框
- 24. 选择Django中的所有复选框
- 25. 选择AngularJS中的所有复选框
- 26. 选择jquery中的所有复选框
- 27. 选择angularJS中的所有复选框
- 28. 选择CheckBoxList中的所有复选框
- 29. 选择div中的所有复选框
- 30. 选择jQuery中的所有复选框
相关http://ux.stackexchange.com/questions/21415/ux-review-word-for-select-all – 2014-06-12 15:16:16
相关http://ux.stackexchange.com/questions/1382/check-all-uncheck-所有复选框兼顾可用性 – 2014-06-12 15:17:16