Rubrik: Controls · ListBox & ComboBox | VB-Versionen: VB2005, VB2008 | 19.02.09 |
Haben Sie sich auch schon oft darüber geärgert, daß in Listenfelder beim Drücken der rechten Maustaste nicht automatisch der Eintrag unter dem Mauszeiger selektiert wird? Vor allem dann, wenn beim Drücken der rechten Maustaste ein PopUp-Menü mit bestimmten Befehlen angezeigt wird. So muß man immer den entsprechenden Eintrag zunächst durch Klicken mit der linken Maustaste selektieren, um dann über die rechte Maustaste das PopUp-Menü zu öffnen.
Es geht aber auch einfacher. Der nachfolgende Tipp zeigt, wie beim Klicken der rechten Maustaste automatisch der Eintrag, auf welchem sich der Mauszeiger gerade befindet, selektiert wird.
Private Sub ListBox1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
With CType(sender, ListBox)
' ListIndex anhand der Mausposition ermitteln
Dim p As Point = .PointToClient(Cursor.Position)
Dim index As Integer = .IndexFromPoint(p)
If index >= 0 Then
' Eintrag selektieren
.SelectedIndex = index
' Hier den Befehl zum Anzeigen eines PopUp-Menüs
...
End If
End With
End If
End Sub