Я написал пользовательский контроль, который, по сути, является палитрой виджетов. Когда пользователь щелкает правой кнопкой мыши один из виджетов, которые я нарисовал на элементе управления, я хочу разрешить пользователю удалить выбранный виджет.
В обработчике событий MouseClick моего usercontrol я определяю, на какой виджет щелкнул пользователь. Затем я проверяю, является ли кнопка мыши правой кнопкой. Если это так, я отображаю меню, которое должно позволить пользователю удалить виджет:
if (e.Button == MouseButtons.Right)
{
ContextMenu deleteMenu = new ContextMenu();
MenuItem deleteItem = new MenuItem("Delete...", new System.EventHandler(this.onDeleteMenuItem_Click));
deleteMenu.MenuItems.Add("Delete");
deleteMenu.Show(this, new Point(mouseXPosition, mouseYPosition));
}
Мой обработчик для этого элемента:
private void onDeleteMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Deleting...");
}
Когда я щелкаю правой кнопкой мыши, отображается меню, но обработчик никогда не вызывается. Что я делаю не так?