当将列表框选择模式设置为multiextended时,我观察了三种选择项目的方法:
1和2.正是我想要的行为,但我不想要3。 因为后来我想用鼠标上下移动所有选定的项目来重新排列项目。
如何摆脱3.?
我需要像Winamp中的播放列表一样的行为。通过拖动和复制粘贴项重新排列项目
答案 0 :(得分:4)
ListBox类有两个SelectionMode。多个或扩展。
在多种模式下,您可以通过单击选择或取消选择任何项目。在扩展模式下,您需要按住 按Ctrl键选择其他项目,或按Shift键选择一系列项目。
需要设置适当的属性。
答案 1 :(得分:1)
您需要“扩展”模式,但除非按下移位或控制键,否则不希望鼠标拖动选择。而不是试图退出功能,你应该添加功能。试试这个。
使用此代码添加按下Control或Shift时选择项目的功能。
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