Dynamisches Menü zur Laufzeit



  • Hallo

    ich erstelle mir zur Laufzeit ein contextMenuStrip.
    Dieses erscheint wenn man über einem bestimmten Element die rechte Maustaste drückt.
    In dem Moment in dem die rechte Maustaste gedrückt wird, werden die Informationen aus einer Datenbank für die Items des contextMenuStrip abgerufen.

    Mit folgenden Befehl addiere ich die Items zu dem contextMenuStrip.

    this->contextMenuStrip->Items->Add(MenuText);
    this->contextMenuStrip->Click += gcnew System::EventHandler(this, &email::EmailMenuClick);
    

    Beim einem Click auf einen Menueintrag wird EmailMenuClick ausgeführt.

    Wie kann ich in der Funktion EmailMenuClick festellen welche Menueintrag ausgewählt wurde ?





  • Das Problem muss in C++/CLI gelöst werden.

    Wenn ich es in C# mache habe ich das selbe problem.



  • biedego schrieb:

    Das Problem muss in C++/CLI gelöst werden.

    Wieso?

    biedego schrieb:

    Wie kann ich in der Funktion EmailMenuClick festellen welche Menueintrag ausgewählt wurde ?

    Indem du deinen Eventhandler an das Menuitem dranhängst, statt an das Menu!? 😉



  • ToolStripMenuItem msi = new ToolStripMenuItem(); // Neues Item
    msi.Text = "YOLO"; // Text setzen
    msi.Click += ... // EventHandler hinzufügen
    contextMenu.Items.Add(msi); // Item hinzufügen
    msi_Click(...)
    {
        ToolStripMenuItem clickedItem = (ToolStripMenuItem)sender; // Sender als MenuStripItem casten
        // tu was
    }
    


  • Vielen Dank.

    Funktioniert so.


Log in to reply