|
分類:[.NET 全般]
分からないことがあるので教えてください。
メニューに数個の項目を動的に配置した場合、そのクリックされた項目を特定するにはどうしたらいいのでしょうか?
//---------------------------------------------------------------------------------
void Form1::AddMenuItem(){
array<::ToolStripMenuItem^>^ Array = gcnew array<::ToolStripMenuItem^>(10);
for(int i=0; i<10; i++){
Array[i] = gcnew ::ToolStripMenuItem();
Array[i]->Text = i->ToString();
Array[i]->Checked = true;
Array[i]->CheckState = System::Windows::Forms::CheckState::Checked;
Array[i]->Size = System::Drawing::Size(180, 22);
Array[i]->Click += gcnew System::EventHandler(this, &Form1::MenuItem_Click);
}
this->rows_ToolStripMenuItem->DropDownItems->AddRange(Array);
}
System::Void Form1::MenuItem_Click(System::Object^ sender, System::EventArgs^ e){
MessageBox::Show(sender->ToString());
}
//---------------------------------------------------------------------------------
senderには呼び出し元の情報が入っているようですが、確かに、上記のようにsender->ToString()とすればメニュー項目の名前は取れるのですが、その他が取れません。
checkedの切り替えやどのメニュー項目が選択されたかを知るにはどのようにすればよいのでしょうか?
よろしくお願いします。
|