Listview: SelectedItem auslesen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Listview: SelectedItem auslesen

    Hallo,
    ich habe eine Listbox mit zwei Spalten: Eintrag und Zeit. Wenn ich die erste Zeile auswähle, kann ich das SelectedItem ja mit

    VB.NET-Quellcode

    1. ListView1.SelectedItems.Item(0).Text
    abfragen. Wenn ich jetzt aber die zweite Zeile auswähle weiß ich nicht wie ich das SelectedItem aus Eintrag abfragen kann.
    Du hast keine LsitBox sondern eine ListView.

    zweitens mal im Namespace nachgeschaut, bzw. wie Addest du die Items, sicher nutzt du die SubItem Methode.

    VB.NET-Quellcode

    1. ListView1.SelectedItem.SubItem(0).Text ' erste spalte
    2. ListView1.SelectedItem.SubItem(1).Text ' zweite spalte


    Zudem würde ich SelectedItem nehmen und nicht Items wenn du nur ein Eintrag markiert hast, ansonsten msuste es noch anders machen.

    VB.NET-Quellcode

    1. For Each SelItem As ListViewItem In ListView1.SelectedItems
    2. Debug.Print(SelItem.Text)
    3. For each SubIt as ListViewSubItem in SelItem.SubItems
    4. Debug.Print(SubIt.Text)
    5. Next
    6. Next
    7. 'oder
    8. For a=0 To Listview1.SelectedItems.count-1
    9. Debug.print(Listview1.SelectedItems(a))
    10. Next


    Und Listview hat kein SelectedItem soweit ich weiss @ Dodo ^^
    Das ist meine Signatur und sie wird wunderbar sein!
    Irgendwie funzt es nicht. Ich habe jetzt zuerst die zweite Zeile makiert. Da hat es gefunzt. Wenn ich gleich hinterher die erste oder eine andere Zeile makiere, kommt folgende Meldung: InvalidArgument=Value mit dem Wert 0 ist für index ungültig. Parametername: index.

    Mein Code:

    VB.NET-Quellcode

    1. RichTextBox2.Text = My.Computer.FileSystem.ReadAllText(My.Application.Info.DirectoryPath & "\benutzer\" & user & "\" & MonthCalendar1.SelectionRange.Start & "\" & ListView1.SelectedItems.Item(0).SubItems(0).Text, System.Text.Encoding.Default)
    Wieso weiß ich nicht genau, aber das Event wird halt ausgelöst wenn sich der SelectedIndex ändert, heißt also auch wenn die Markierung aufgehoben wird. Könnte ein Fehler vom Control sein, weil ohne Markierung gibt es kein Index und der ist somit -1 und -1 kann eben als INdex nicht gefunden werden, deshalb wird eine Exception ausgeworfen.

    Sicher müsste es auch klappen mit einer If Bedingung

    VB.NET-Quellcode

    1. If ListBox1.SelectedIndex >= 0 Then


    So oder so ähnlich. Aber ich amchs auch immer mit Try Catch weil dann der Code, der die Markierung ausliest wirklich NUR dann funktioniert, wenn auch eine Markierung vorhanden ist, alle anderen Fehlerfälle werdne ignoriert.