Welche Version von vb.net hast du?
mir sagt er bei
lastIndex = Me.LV.SelectedItems(0).Index
einen Fehler.
Das müsste eigentlich doch Me.LV.SelectedIndex sein. Das gibt dir ja den Index des ersten, markierten Elementes.
mit(0) müsstest du auch sicherstellen, dass es Elemente gibt.
wie kommt deine Höhenberechnung zustande?
ich habe mich vorhin vertan, dass man noch LV.top abziehen müsste, da ich nicht genau wusste, worauf er e.Y bezieht. Nun bezieht er es auf den oberen Rand der Listbox. Ich denke, daher hast du die 23.
ich kenne natürlich nicht deine Formatierung, aber bei mir ist folgende Beziehung für SelectMode=single am besten:
If e.Y
Möchte man mehrere Elemente ausgewählt lassen, bietet sich das Verwenden von selectedIndices an:
Dim lastindex As New List(Of Int16)
Private Sub ListBox1\_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseUp
If e.Y
Das funktioniert auch bei SelectionMode=Single, ist aber evtl bisschen overkill^^
Ich muss aber nochmal fragen, welche Version du benutzt. Wenn ich meine Listbox auf SelectionMode Single stelle, wird auch beim Klick in leere Bereiche die bisherige Auswahl nicht aufgehoben.
Ich benutze die vb2008.
mit freundlichen Grüßen
Julian