Listview vorherigen Eintrag auswählen mit Button

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Downloader17.

    Listview vorherigen Eintrag auswählen mit Button

    Hallo,
    ich möchte wie schon in der Überschrift steht mit einem Button den vorherigen Eintrag auswählen (selektieren) wie man den nächsten Eintrag auswählt weiß ich schon mache ich mit diesem Code:

    VB.NET-Quellcode

    1. If ListView1.SelectedIndices.Count > 0 Then
    2. Dim index As Integer = ListView1.SelectedIndices.Item(ListView1.SelectedIndices.Count - 1)
    3. Dim cnt As Integer = ListView1.SelectedIndices.Count
    4. ListView1.SelectedIndices.Clear()
    5. ListView1.Update()
    6. If index >= 0 And cnt > 0 Then
    7. If index < ListView1.Items.Count - 1 Then
    8. SelectItem(index + 1)
    9. Else
    10. SelectItem(0)
    11. End If
    12. End If
    13. ElseIf ListView1.Items.Count > 0 Then
    14. SelectItem(0)
    15. End If


    Wahrscheinlich muss dort auch nur eine kleinigkeit geändert werden aber ich weiß nicht was da abgeändert werden muss.

    Könnt ihr mir vielleicht helfen. Ich suche schon die ganze Zeit bei Google und hier im Forum aber ich finde nichts. :)

    MFG
    Downloader17
    Probiers mal hiermit:

    VB.NET-Quellcode

    1. Listview1.Items(Listview1.FocusedItem.Index - 1).Focused = True

    Den nächsten kannst du auch einfach mit:

    VB.NET-Quellcode

    1. Listview1.Items(Listview1.FocusedItem.Index + 1).Focused = True

    Fokusieren
    Hallo,
    ich habe jetzt mal was in meinem Code geändert, es funktioniert auch fast er zeigt mir nur noch diesen Fehler an:
    Bild mit dem Fehler

    Hier noch mal der Code:

    VB.NET-Quellcode

    1. If ListView1.SelectedIndices.Count > 0 Then
    2. Dim index As Integer = ListView1.SelectedIndices.Item(ListView1.SelectedIndices.Count - 1)
    3. Dim cnt As Integer = ListView1.SelectedIndices.Count
    4. ListView1.SelectedIndices.Clear()
    5. ListView1.Update()
    6. If index >= 0 And cnt > 0 Then
    7. If index < ListView1.Items.Count - 1 Then
    8. SelectItem(index + 1)
    9. Else
    10. SelectItem(0)
    11. End If
    12. End If
    13. ElseIf ListView1.Items.Count > 0 Then
    14. SelectItem(0)
    15. End If
    16. End Sub
    17. Private Sub SelectItem(ByVal i As Integer)
    18. ListView1.Focus()
    19. ListView1.Items(i).Selected = True
    20. ListView1.Update()
    21. End Sub


    Hier habe ich den geänderten Code:

    VB.NET-Quellcode

    1. If index < ListView1.Items.Count - 1 Then
    2. SelectItem(index + 1)
    3. Else
    4. SelectItem(0)
    5. End If


    Aus dem Plus habe ich ein Minus gemacht. Ich hoffe ihr könnt mir helfen.

    MFG
    Downloader17
    Danke noch mal für den Code aber wenn ich das erste bild markiere und den Code ausführe kommt wieder ein Fehler

    Hier mal ein Bild vom Fehler:
    Bild vom Fehler

    Wenn das erste Bild markiert ist soll er mit dem Code auch zum letzten Bild springen. So wie bei dem anderen Code mit dem ich vorwärts blätter.

    MFG
    Downloader17
    ok,dann so:

    If ListView1.SelectedIndices(0) > 0 Then
    ListView1.Focus()
    ListView1.Items(ListView1.SelectedIndices(0) - 1).Selected = True
    ListView1.Items(ListView1.SelectedIndices(1)).Selected = False
    ListView1.Update()
    ElseIf ListView1.SelectedIndices(0) = 0 Then
    ListView1.Focus()
    ListView1.Items(ListView1.Items.Count - 1).Selected = True
    ListView1.Items(ListView1.SelectedIndices(0)).Selected = False
    ListView1.Update()
    Else
    End If

    Gruß Vitox
    Hallo,
    ich habe den Code über mir genutzt nun möchte ich noch das wenn das Bild in der Listview nicht zu sehen ist, also wenn man erst runterscrollen muss um das Bild zu sehen das er automatisch beim selektieren scrollt.
    Gruß Downloader17
    Hallo,
    ich habe es jetzt selber hinbekommen hier der geänderte Code:

    VB.NET-Quellcode

    1. If ListView1.SelectedIndices(0) > 0 Then
    2. ListView1.Focus()
    3. ListView1.Items(ListView1.SelectedIndices(0) - 1).Selected = True
    4. ListView1.Items(ListView1.SelectedIndices(1)).Selected = False
    5. ListView1.SelectedItems(0).EnsureVisible()
    6. ListView1.Update()
    7. ElseIf ListView1.SelectedIndices(0) = 0 Then
    8. ListView1.Focus()
    9. ListView1.Items(ListView1.Items.Count - 1).Selected = True
    10. ListView1.Items(ListView1.SelectedIndices(0)).Selected = False
    11. ListView1.SelectedItems(0).EnsureVisible()
    12. ListView1.Update()
    13. Else
    14. End If


    Ich habe einfach diesen Code eingefügt:

    VB.NET-Quellcode

    1. ListView1.SelectedItems(0).EnsureVisible()


    Google ist doch ne tolle Sache :D :thumbsup:

    MFG
    Downloader17