MenuStrip Untermenü hinzufügen

  • VB.NET

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

    MenuStrip Untermenü hinzufügen

    Moin,

    ich möchte für ein Prog in ein vorhandenes MenuStip zur Laufzeit noch Untermenüpunkte hinzufügen. Leider war meine Suche bei Google bisher erfolglos.
    Wichtig ist zudem noch die Untermenüpunkte mit einer Sub Routine zu verknüpfen und ggf. einen Index zu bekommen, der der Menüpositon entspricht.

    MenuStrip
    |- Datei (mnuFile)
    ....|- Login (mnuLogin)
    ........|- hier sollen Namen eingefügt werden
    ....|- Einstellungen (mnuSetting)
    ....|- Beenden mnu(end)

    VB.NET-Quellcode

    1. Private Sub mnuLoginNamen_Click (...)
    2. iIndex = ' anklicktes MenuItem
    3. ' benötige ich um an
    4. Daten(iIndex).Username
    5. Daten(iIndex).Password
    6. ' zu kommen
    7. End Sub


    Edit: Also MenüItem hinzufügen habe ich nun hinbekommen mit

    VB.NET-Quellcode

    1. mnuLogin.DropDownItems.Add("Loginname")


    Nur wie weiße ich dem hinzugefügten Item ein Handler zu?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dodo“ ()

    Hallo Dodo,

    das habe ich heute in einem anderen Thread auf dieser Seite schon einmal gepostet:

    VB.NET-Quellcode

    1. Dim m_TSDropDownHandler As New EventHandler(AddressOf TSDropDownHandler)
    2. ToolStripDropDownButton1.DropDownItems.Add(TextBox1.Text, Nothing, m_TSDropDownHandler)


    Gruß,

    f0x
    Okay danke schön =) das funktioniert schonmal, aber wie bekomme ich nun das ausgewählte MenüItem? Entweder Index oder den Name, irgendwas, wonach ich selektieren kann. Da ich nun mehrere MenüItems in einer Schleife erzeuge, beliebig viele und nicht für jedes eine Sub machen kann.

    VB.NET-Quellcode

    1. Dim Daten(2) As String
    2. Sum Form_Load()
    3. Dim eHandler As New EventHandler(AddressOf mnuLoginName)
    4. Daten(0) = "Dodo"
    5. Daten(1) = "Herbert"
    6. Daten(2) = "Uwe"
    7. For i = 0 To 2
    8. ToolStripDropDownButton1.DropDownItems.Add(Daten(i), Nothing, eHandler)
    9. Next i
    10. End sub
    11. Sub mnuLoginName()
    12. ' Hier soll was ausgeführt werden, wofür die Daten gebraucht werden, also muss ich irgendwie an den Index kommen um den Wert aus dem Daten() Array rauszuholen
    13. End Sub
    Ah okay, ich ahtte es zuvor versucht gehabt, wenn ich das noch angebe, da wurde mir aber bei AdressOf der Name unterstrichen, weil dort noch was erwartet wurde, aber nu gehts =)
    Vielen dank, aber ich bekomme dann nur den ItemNamen oder?

    VB.NET-Quellcode

    1. Sub mnuLoginName(ByVal sender As System.Object, ByVal e As System.EventArgs)
    2. MsgBox(sender.ToString)
    3. End Sub