0

そのため、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);
    }

正しいやり方を教えてください。

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 に答える