C++ cli 动态添加菜单项

C++ cli 动态添加菜单项,c++-cli,C++ Cli,因此,我在动态地向menuStrip添加项时遇到了问题。我的意思是,我知道如何向其中添加项目,但我不知道如何为那些动态添加的项目创建单击处理程序 for(int i = 0; i < grupiuKiekis; i++) { row2 = mysql_fetch_row(result2); System::String^ grupesName = gcnew String(row2[1]); pasirinktiGrupęToolSt

因此,我在动态地向menuStrip添加项时遇到了问题。我的意思是,我知道如何向其中添加项目,但我不知道如何为那些动态添加的项目创建单击处理程序

for(int i = 0; i < grupiuKiekis; i++)
    {
        row2 = mysql_fetch_row(result2);
        System::String^ grupesName = gcnew String(row2[1]);
        pasirinktiGrupęToolStripMenuItem->DropDownItems->Add(grupesName);
    }
for(int i=0;iDropDownItems->Add(grupesName);
}

请告诉我正确的方法。

Add方法有几个重载。您可以使用,或者您可以构建,在上面设置,然后

编辑 以下是您基本上想要做的:

for(int i = 0; i < grupiuKiekis; i++)
{
    row2 = mysql_fetch_row(result2);
    System::String^ grupesName = gcnew String(row2[1]);
    ToolStripItem^ item = gcnew ToolStripItem();
    item->Text = grupesName;
    item->Click += gcnew EventHandler(this, &Form1::clickHander);
    pasirinktiGrupęToolStripMenuItem->DropDownItems->Add(item);
}

void clickHander(Object^ sender, EventArgs^ e)
{
    ToolStripItem^ item = (ToolStripItem^) sender;
    System::String^ grupesName = item->Text;
    // Do what you need to do.
}
for(int i=0;i文本=grupesName;
item->Click+=gcneweventhandler(这个,&Form1::clickHander);
pasirinktiGrupęToolStripMenuItem->下拉项目->添加(项目);
}
无效clickHander(对象^sender,事件参数^e)
{
ToolStripItem^项=(ToolStripItem^)发送方;
系统::字符串^grupesName=项目->文本;
//做你需要做的事。
}

我知道如何为按钮创建clickHandler,但如何在dropDownItems上创建clickHandler?dropDownItems是一个列表,而不是用户单击的对象。您正在ToolStripItem上添加单击处理程序。我仍然不明白。。。好的,你能解释一下我应该怎么做吗?因为我想做的是:从MYSQL数据库中获取一些东西,并将其添加到menustrip dropdownlist。然后,当我从dropdownlist中选择item时,我想读取该items名称;您需要更改为ToolStripMenuItem^item=gcnew ToolStripMenuItem;感谢您的回答:]