Цитата(href @ 13.3.2009, 16:21 ) | | Воюю в c# с ContextMenu. Создаю в нём MenuItem'ы и хочу, чтобы при клике на любом из них вызывалась одна и та же функция, а какой именно из MenuItem'ов нажат определять через параметр этой функции. |
Просто надо назначить всем MenuItem'мам один обработчик, а какой из них кликнут определять по параметру sender. Если же "кровь с носа" надо, чтобы обработка производилась в методе, имеющем другую сигнатуру, то надо создать этот метод и вызвать его из обработчика кликов(передав нужные аргументы)...Правда не очень понятно зачем это надо.
| Код | void initMenu() { foreach(MenuItem itm in myMenu.MenuItems) { itm.Click += new EventHandler(MenuItem_click); } }
private void MenuItem_click(object sender, EventArgs e) { MyClickHandler((MenuItem)sender); }
void MyClickHandler(MenuItem item) { //здесь разместить код обработчика //параметр укажет отправителя события
}
|
|