c# - propiedades - listbox selectionmode=multiextend cómo deshacerse de seleccionar elementos con la tecla de mouse hacia abajo
propiedades de listbox (2)
Al configurar el modo de selección de cuadro de lista para multiextendido, observé tres formas de seleccionar elementos:
- presionando la tecla del mouse mientras se mantiene presionada la tecla shift
- presionando la tecla del mouse mientras se mantiene presionada la tecla ctrl
- presionando la tecla del mouse mientras mueve el mouse sobre el elemento no seleccionado
1 y 2. es exactamente el comportamiento que quiero pero no quiero 3. porque más tarde quiero reorganizar elementos moviendo todos los elementos seleccionados hacia arriba y hacia abajo con el mouse.
¿Cómo deshacerse de 3.?
Necesito un comportamiento como la lista de reproducción en Winamp. Reorganiza elementos arrastrando y copiando elementos de pegar
Desea el modo "Extendido" pero no desea las selecciones de arrastre del mouse a menos que se presione una tecla shift o control. En lugar de intentar deshacer las funciones, debe agregar características. Prueba esto.
- Establezca "KeyPreview" en su formulario en "True".
- Configure SelectionMode para su ListBox nuevamente a "MultiSimple".
Use este código para agregar la capacidad de seleccionar elementos cuando se presiona Control o Mayús.
Public Class Form1
Private bSelectMode As Boolean = False
Private Sub Form1_KeyUpOrDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown, Me.KeyUp
bSelectMode = e.Control OrElse e.Shift
End Sub
Private Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseMove
If bSelectMode AndAlso e.Button <> Windows.Forms.MouseButtons.None Then
Dim selectedindex = ListBox1.IndexFromPoint(e.Location)
If selectedindex <> -1 Then
ListBox1.SelectedItems.Add(ListBox1.Items(selectedindex))
End If
End If
End Sub
End Class
La clase ListBox tiene dos SelectionMode. Múltiple o Extendido.
En el modo Múltiple, puede seleccionar o anular la selección de cualquier elemento haciendo clic en él. En el modo extendido, debe mantener presionada la tecla Ctrl para seleccionar elementos adicionales o la tecla Mayús para seleccionar un rango de elementos.
Sólo se debe establecer la propiedad adecuada.