Dynamisch erzeugte MenuStrip DropDownItems auslesen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Thunderbolt.

    Dynamisch erzeugte MenuStrip DropDownItems auslesen

    Hallo zusammen.

    Ich erzeuge wie folgt in einem MenuStrip Dynamisch Items:

    VB.NET-Quellcode

    1. ​ list = New List(Of String)
    2. list = File.ReadAllLines(LAST_USED_FILES).ToList
    3. ZuletztVerwendetToolStripMenuItem.DropDownItems.Clear()
    4. For i As Integer = 0 To LAST_USED_ITEM_COUNT - 1
    5. ZuletztVerwendetToolStripMenuItem.DropDownItems.Add(list(i))
    6. Next



    Das macht genau was es soll. Nun möchte ich aber den Text der dynamisch erzeugten Items nach Klick darauf wieder auslesen (Messagebox, ...)

    VB.NET-Quellcode

    1. Private Sub ZuletztVerwendetToolStripMenuItem_DropDownItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ZuletztVerwendetToolStripMenuItem.DropDownItemClicked
    2. MessageBox.Show(DirectCast(sender, ToolStripMenuItem).Text)
    3. End Sub


    Hier erhalte ich allerdings bei jedem Item nur: "Zuletzt verwendet", was der Name des ÜberItems ist

    Hoffe jemand kann helfen


    BG

    dr. Nick schrieb:

    Handles ZuletztVerwendetToolStripMenuItem.DropDownItemClicked

    MessageBox.Show(DirectCast(sender, ToolStripMenuItem).Text)
    Was erwartest Du? Wenn nur ZuletztVerwendetToolStripMenuItem gehandelt wird, ist sender immer ZuletztVerwendetToolStripMenuItem. Du müsstest wahrscheinlich zusätzlich per AddHandler arbeiten:

    VB.NET-Quellcode

    1. For i As Integer = 0 To LAST_USED_ITEM_COUNT - 1
    2. ZuletztVerwendetToolStripMenuItem.DropDownItems.Add(list(i))
    3. Dim NewItem = ZuletztVerwendetToolStripMenuItem.DropDownItems(ZuletztVerwendetToolStripMenuItem.DropDownItems.Count - 1)
    4. AddHandler NewItem.DropDownItemClicked, AddressOf ZuletztVerwendetToolStripMenuItem_DropDownItemClicked
    5. Next
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.