Listbox - Kontext - Element unter Mauszeiger ermitteln

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Listbox - Kontext - Element unter Mauszeiger ermitteln

    Moin!

    wie aus einem anderen Posting bekannt sein mag habe ich eine Liste mit mehreren Einträgen, wo auch unterschiedliche Eintrage markiert sein können.

    Nun möchte ich über das Kontextmenü das unter dem Mauszeiger befindliche Element an eine Funktion übergeben.

    Das Kontextmenü habe ich realisiert bekommen:

    VB.NET-Quellcode

    1. ' Steuerung des Kontextmenü
    2. Dim EintragFilter As New MenuItem("als Filter setzen")
    3. Dim ctxm As New ContextMenu
    4. ctxm.MenuItems.Add(EintragFilter)
    5. lbox_DateiAuflistung.ContextMenu = ctxm
    6. AddHandler EintragFilter.Click, AddressOf FilterÜbernehmenKontext


    Derzeit mach die Filterfunktion folgendes:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Funktionsaufruf aus dem Kontext
    3. ''' </summary>
    4. Private Sub FilterÜbernehmenKontext()
    5. FilterÜbernehmen(True)
    6. End Sub
    7. Private Sub FilterÜbernehmen(StartByKontext As Boolean)
    8. Dim GewaehlteDatei As String = ""
    9. Dim PosBindestrich As Integer = -1
    10. Dim PosPrefix As Integer = -1
    11. Dim FileExtension As String = ""
    12. Dim PosFilterSplit As Integer = -1
    13. With lbox_DateiAuflistung
    14. If StartByKontext = False Then
    15. If .SelectedItems.Count = 0 Then
    16. MsgBox("Es muss ein Dateiname in Liste markiert sein!", MsgBoxStyle.Information, k_AppName_AddFotoDoc)
    17. Exit Sub
    18. End If
    19. If .SelectedItems.Count > 1 Then
    20. MsgBox("Es darf nur EIN Dateiname in Liste markiert sein!", MsgBoxStyle.Information, k_AppName_AddFotoDoc)
    21. Exit Sub
    22. End If
    23. End If
    24. GewaehlteDatei = lbox_DateiAuflistung.Items(.SelectedIndex)
    25. ....


    Mit dem Code greife ich aber auf die allgemein selektierten Elemente der Liste zu - kann mir einer sagen, wie ich nur an das Element unter dem Mauszeiger komme - auch wenn dieses nicht selektiert ist!

    Gruß Jan
    So kannste du das Item bekommen welches unter dem Cursor ist

    VB.NET-Quellcode

    1. Private Sub ListBox1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseMove
    2. Dim pos As Point = ListBox1.PointToClient(Cursor.Position)
    3. Dim index As Integer = ListBox1.IndexFromPoint(pos)
    4. If index > -1 Then
    5. Debug.WriteLine(ListBox1.Items(index).ToString())
    6. End If
    7. End Sub
    And i think to myself... what a wonderfuL World!