动态添加menuStrip项

时间:2012-04-05 17:34:27

标签: c++-cli

所以我在向menuStrip动态添加项目时遇到问题。我的意思是我知道如何添加项目,但我不知道如何将Click处理程序添加到那些动态添加的项目。

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

请告诉我正确的方法。

1 个答案:

答案 0 :(得分:0)

Add方法有几个重载。您可以使用overload that allows you to specify an EventHandler explicitly,也可以构建ToolStripItem,在其上设置click handler,然后add the ToolStripItem

修改

这基本上是你想要做的:

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.
}