C# 在C中动态地向MenuItem添加事件#

C# 在C中动态地向MenuItem添加事件#,c#,C#,我已经动态创建了菜单。但是我不知道如何处理菜单项的事件。如果有人有解决方案,请告诉我。提前谢谢 ToolStripMenuItem master,transaction,report,exit; private void Menu1_Load(object sender, EventArgs e) { master = new ToolStripMenuItem("Master"); menuStrip1.Items

我已经动态创建了菜单。但是我不知道如何处理菜单项的事件。如果有人有解决方案,请告诉我。提前谢谢

ToolStripMenuItem master,transaction,report,exit;
        private void Menu1_Load(object sender, EventArgs e)
        {
            master = new ToolStripMenuItem("Master");
            menuStrip1.Items.Add(master);

            master.DropDownItems.Add("Party Master");
            master.DropDownItems.Add("Item Master");
            master.DropDownItems.Add("Tax Master");
            master.Click += MenuClicked;

            transaction = new ToolStripMenuItem("Transaction");
            menuStrip1.Items.Add(transaction);
            transaction.DropDownItems.Add("Inward");
            transaction.DropDownItems.Add("Inoice");
            transaction.DropDownItems.Add("Daily Expense");

            report = new ToolStripMenuItem("Report");
            menuStrip1.Items.Add(report);
            report.DropDownItems.Add("Master Report");
            report.DropDownItems.Add("Transaction Report");
            report.DropDownItems.Add("Daily Expense Report");

            exit = new ToolStripMenuItem("Exit");
            menuStrip1.Items.Add(exit);
        }

        private void MenuClicked(object o,EventArgs e)
        {
            if ((((ToolStripMenuItem)o).Text) == "Party Master")
            {
                Master.PartyMaster p = new Master.PartyMaster();
                p.Show();
            }
        }`

尝试以以下方式添加下拉列表项:

        ToolStripItem partyMaster = new ToolStripMenuItem() { Text = "Party Master" };
        partyMaster.Click += MenuClicked;
        ToolStripItem itemMaster = new ToolStripMenuItem() { Text = "Item Master" };
        itemMaster.Click += MenuClicked;
        ToolStripItem taxMaster = new ToolStripMenuItem() { Text = "Tax Master" };
        taxMaster.Click += MenuClicked;

        master.DropDownItems.Add(partyMaster);
        master.DropDownItems.Add(itemMaster);
        master.DropDownItems.Add(taxMaster);
或更动态地使用列表和for循环

List items=newlist()

和循环将更多项目添加到菜单中

ToolStripMenuItem项=新建ToolStripMenuItem()

项目。添加(项目)


item.Click+=neweventhandler(菜单单击);//如果您只想使用一个功能

单击菜单时处理程序是否不会启动?是的。它不起作用您是否有充分的理由动态创建此菜单?为什么不在设计器中创建它并以这种方式连接事件?看起来您没有任何逻辑来更改运行时菜单中的内容……它看起来是静态的。
        `// Master 
        master.DropDownItems.
            AddRange(new System.Windows.Forms.ToolStripItem[] 
            {
                partyMaster,
                itemMaster,
                taxMaster
            }
            );
        master.Name = "Master";
        master.Size = new System.Drawing.Size(125, 20);
        master.Text = "Master";
        master.Click += new System.EventHandler(master_Click);

        // Party Master
        partyMaster.Name = "PartyMaster";
        partyMaster.Size = new System.Drawing.Size(152, 22);
        partyMaster.Text = "PartyMaster";
        partyMaster.Click += new System.EventHandler(partyMaster_Click);

        // Item Master
        itemMaster.Name = "ItemMaster";
        itemMaster.Size = new System.Drawing.Size(152, 22);
        itemMaster.Text = "ItemMaster";

        // Tax Master
        taxMaster.Name = "TaxMaster";
        taxMaster.Size = new System.Drawing.Size(152, 22);
        taxMaster.Text = "TaxMaster"; //`