usability - opcion - insertar checkbox en excel 2016
La mayorÃa utilizable selecciona todo/deselecciona todo el formato de casilla de verificación (5)
Diría que es la forma más intuitiva de seleccionar / deseleccionar todo. Pero también he visto que algunos usan un enlace, pero yo preferiría eso.
¿Cuál es el mejor patrón para seleccionar o anular la selección de todas las casillas de verificación? ¿Puede alguien encontrar una mejor manera de tenerlo en esta forma?
Simplemente acerque la casilla de verificación Seleccionar todo al borde izquierdo. Tal vez cambie el texto algo así como "Todos los juegos anteriores", etc. para dejar en claro qué "todos" se está seleccionando.
Voy a ser sincero, nunca me ha gustado la idea de usar una casilla de verificación para la opción "seleccionar todo", aunque lo veas mucho. No es un solo elemento para ser recogido, es una acción. Y si selecciona todo y luego comienza a deseleccionar elementos individuales en la lista, el estado "marcado" de la casilla de verificación Seleccionar todo se vuelve intrínsecamente confuso. Prefiero usar un enlace / botón simple pero obvio que alterna entre "seleccionar todo" y "deseleccionar todo" al hacer clic en él. No hay ningún estado para confundirlo cuando se han deseleccionado elementos individuales, y el resultado de presionar el botón nunca está en duda. La naturaleza exclusiva de la operación hace que sea perfectamente razonable alternar (en lugar de usar dos botones siempre visibles, uno para seleccionar todo, uno para deseleccionar todo), ya que está como máximo a dos clics de su comportamiento deseado. Y separa visualmente esta "acción" de los elementos individuales, lo que evita los errores y distingue el comportamiento.
Aquí está la lógica de un Control de usuario en WinForms para implementar la respuesta de @nezroy. Esto le permite especificar una Acción Inicial [una de SelectAll o DeselectAll] también.
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
Si puede formatear su diálogo con listas, me gusta el método de "casilla de verificación en el encabezado de la lista" (y la mayoría de los usuarios saben cómo usarlo).
Si no quiere usar una lista, creo que un botón o un hipervínculo (que pasa de "Seleccionar todo" a "No seleccionar ninguno" funcionaría mejor que otra casilla de verificación que es difícil de distinguir entre todas las demás casillas de verificación. , desmarcar la casilla "marcar todo" no necesariamente agregaría una funcionalidad de "no verificar ninguno" para un usuario.