![](/img/trans.png)
[英]Binding to Winforms Listbox or DevExpress ListBoxControl (SelectionMode=MultiExtended)
[英]listbox selectionmode = multiextended how to get rid of selecting items with mousekey down
將列表框選擇模式設置為multiextended時,我觀察了三種選擇項目的方法:
1和2.正是我想要的行為,但我不想要3.因為后來我想通過用鼠標上下移動所有選定的項目來重新排列項目。
如何擺脫3.?
我需要像Winamp中的播放列表一樣的行為。 通過拖動和復制粘貼項重新排列項目
ListBox類有兩個SelectionMode。 多個或擴展。
在“多種”模式下,您可以通過單擊選擇或取消選擇任何項目。 在擴展模式下,您需要按住Ctrl鍵選擇其他項目,或按住Shift鍵選擇一系列項目。
只需要設置適當的屬性。
您需要“擴展”模式,但除非按下移位或控制鍵,否則不希望鼠標拖動選擇。 而不是試圖退出功能,你應該添加功能。 試試這個。
使用此代碼添加按下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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.