ListView Itmen mit Eintrag aus ContextMenuStrip Auswählen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    ListView Itmen mit Eintrag aus ContextMenuStrip Auswählen

    Hallo Leute,

    ich habe eine Listview in der ich mehrere Spalten habe. Die einzelnen Einträge lassen sich durch ein doppelclick auswählen (siehe Code 1)

    VB.NET-Quellcode

    1. ' Doppelklick ereignis Auf Inhalt von ListView
    2. Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
    3. Dim lvi As ListViewItem = CType(sender, ListView).SelectedItems(0)
    4. MessageBox.Show("Sie haben " & lvi.Text & " Doppelgeklickt")
    5. End Sub


    Das Click Ereigniss auf den Eintrag im ContextMenuStrip sieht wie folgt aus

    VB.NET-Quellcode

    1. Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
    2. Form2.Show()
    3. End Sub


    hierbei öffnet sich also Form2. Wie ist es nun möglich das ich einem Label in Form2 angezeigt bekomme welchen Eintrag ich angeclick habe? Also wie im Code 1 die MessageBox nur als Label in Form2

    Viele Dank
    Ehrlich gesagt hab ich das nicht ganz verstanden. Ich hatte mit erhofft das durch praktische Anwendung zu erlernen. Ich selbst bin kein Freund von C&P, aber so richtig schlau werde ich nicht daraus. Wenn du mir also meinen ersten richtigen Code etwas verständlicher machen könntest, würdest du mir da schon helfen...
    hmpfh, das kommt davon wenn man zu schnell antwortet : der erste Code ist zwar richtig, aber nicht besonders sinnvoll. Da der Eventhandler ausschliesslich das Doppelclick Ereignis von ListView1 behandelt (Handles ListView1.DoubleClick), ist folgender Code kürzer und vernünftiger:

    VB.NET-Quellcode

    1. Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
    2. ' das Objekt auf das sich der Doppelick bezieht kann nur ListView1 sein
    3. Dim lvi As ListViewItem = Listview1.SelectedItems(0)
    4. MessageBox.Show("Sie haben " & lvi.Text & " Doppelgeklickt")
    5. End Sub
    Casten mit CType macht nur Sinn wenn man nicht genau weiss von welchem Control das Ereignis stammt.

    Genauso kann bei Deinem 2. Beispiel nur ToolStripMenuItem1 der Auslöser sein, also reicht

    VB.NET-Quellcode

    1. Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
    2. Form2.Show()
    3. Form2.Label1.text=ToolStripMenuItem1.text
    4. End Sub
    Hey,



    Genauso kann bei Deinem 2. Beispiel nur ToolStripMenuItem1 der Auslöser sein, also reicht
    So meinte ich das nicht. Jetzt wird mir in Form2.Label1.Text "Bearbeiten" Angezeigt. Ich wollte aber folgendes:

    Mein ListView.
    1 Rene
    2 Emma
    3 Katrin

    wenn ich nun mit der Rechten Maustaste auf "2 Emma" Klicke, öffnent sich das Contex Menü. Dieses enthält mehrere Einträge, unter anderem "Bearbeiten". In Form2.Label1 soll aber nun nicht "Bearbeiten", sondern "2 Emma" stehen.


    Grüße
    Dim lvi As ListViewItem = Listview1.SelectedItems(0)
    Form2.Label1.text=lvi.Text
    So weit war ich schon ;)

    Nur leider nicht ganz das was ich wollte.

    Das DoppelKlick Ereigniss zeigt mir die Daten schon in Form3 an. Ich will jedoch das ich mit der Rechten Maus-Taste über das Contex Menü "Bearbeiten" die Daten in Form2 bearbeiten kann. (Also hier im Bsp. in Label1 angezeigt bekomm). Wie gesagt, Doppelklick im ListView -> Daten werden angezeigt in Form3, Rechte Maustaste "bearbeiten" -> Daten werden in Form2 angezeigt.

    Grüße
    ich habe schon verstanden was du willst.
    wenn du mit der rechten maustaste auf einen eintrag klickst wird der ja auch selected. dann nimmst du wie beim doppelklick den text vom selected item. bist du sicher dass du es ausprobiert hast?
    @squisheemixxa: das ist nich falsch was du gepostet hast...... ich würde mit variable verstehen wenn du das ganze OOP schreibst, spricht Klassen/Module, aber nicht in Form Code wo du direkt Eigenschaften/Methoden von ListView ansprechen kannst.

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