listview selectedrow

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Loquax.

    listview selectedrow

    Ich habe nun eine weitere zeile in mein textdokument angehängt die den dateipfad vom savefiledialog1 beim speichern enthält. dieser dateipfad ist in der 8. spalte (Name & text = Dateipfad) im listview.

    nun
    möchte ich mit einem listview event per Doppelklick die Datei zu der die
    markierte Zeile/Row gehört in eine textbox laden.

    Das
    heißt: der benutzer doppelklickt eine zeile/row und das programm liest die textdatei mit dem dateipfad in der 8. spalte der x-ten Zeile aus und packt es in eine textbox

    nun meine frage: wie stelle ich das an? ich finde im internet einfach nichts wie ich die ausgewählte reihe (fullrowselect = true) bekomme.

    mein ansatz:

    VB.NET-Quellcode

    1. dim PfadZurDatei as listview1.selectedrow.dateipfad
    2. Dim Zeile As String() = IO.File.ReadAllLines(PfadZurDatei)
    3. Dim sr As New StreamReader(PfadZurDatei)
    4. textbox1.text = sr.ReadLine(0)


    die 1. zeile ist natürlich nur theoretisch, dafür bräuchte ich etwas was wirklich funktioniert. der rest sollte so funktionieren

    danke im voraus!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Loquax“ ()

    VB.NET-Quellcode

    1. Private Sub ListView1_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick
    2. Dim item = ListView1.SelectedItems(0)
    3. End Sub
    Den Rest machst Du über SubItems.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Sub ListView1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.DoubleClick
    2. If (Me.ListView1.SelectedItems.Count > 0) Then
    3. Dim item = ListView1.SelectedItems(0)
    4. Dim Dateipfad As String = MsgBox(ListView1.Items(8).SubItems(1).Text)
    5. Dim Zeile As String() = IO.File.ReadAllLines(Dateipfad)
    6. Dim sr As New StreamReader(Dateipfad)
    7. TextBox1.Text = sr.ReadLine(0)
    8. sr.Close()
    9. End If
    10. End Sub


    Items(8) ist doch die 8. Spalte oder? Wie gestalte ich denn nun SubItems dynamisch? Denn wenn der benutzer die 2. row doppelklickt, dann ist das subitem ja nicht 1 sondern 2.
    Rows stehen untereinander, SubItems nebeneinandeer.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Null-Indiziert, also Zeile 2, Spalte 8.
    Oder
    Zeile(DIE_DER_USER_ANGEKLICKT_HAT), Spalte 8.
    Oder
    Dim item = ListView1.SelectedItems(0).SubItem(8) ' oder so
    wegen SelectedItems.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!