0

所以我在向 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);
    }

请告诉我正确的方法。

4

1 回答 1

0

Add 方法有几个重载。您可以使用允许您显式指定 EventHandler 的重载,或者您可以构造一个ToolStripItem,在其上设置一个单击处理程序,然后添加 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.
}
于 2012-04-05T22:07:37.180 回答