C# 用户控件上的上下文菜单?

C# 用户控件上的上下文菜单?,c#,user-controls,contextmenu,C#,User Controls,Contextmenu,我编写了一个用户控件,本质上是一个小部件调色板。当用户右键单击我在控件上绘制的一个小部件时,我希望允许用户删除所选的小部件 在usercontrol的MouseClick事件处理程序中,我确定用户单击了哪个小部件。然后我检查鼠标按钮是否正确。如果是这样,我会显示一个菜单,允许用户删除小部件: if (e.Button == MouseButtons.Right) { ContextMenu deleteMenu = new ContextMenu(); MenuItem dele

我编写了一个用户控件,本质上是一个小部件调色板。当用户右键单击我在控件上绘制的一个小部件时,我希望允许用户删除所选的小部件

在usercontrol的MouseClick事件处理程序中,我确定用户单击了哪个小部件。然后我检查鼠标按钮是否正确。如果是这样,我会显示一个菜单,允许用户删除小部件:

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...");
}

当我右键单击时,将显示菜单,但从未调用处理程序。我做错了什么?

我怀疑是因为您没有添加菜单项:

更改此代码行:

deleteMenu.MenuItems.Add("Delete");
致:


哦!非常感谢。很明显,我看了好几个小时都没看到。
deleteMenu.MenuItems.Add(deleteItem);