C# 单击菜单项时如何调用mousedown事件?

C# 单击菜单项时如何调用mousedown事件?,c#,menuitem,C#,Menuitem,我正在做一个关于c#图像处理的项目,我的表单和菜单条中有一个picturebox,它有各种选项(操作),可以应用于图像(如模糊、深褐色、对比度等)。我正在考虑实现一个裁剪控制,我已经把它作为菜单项包括进去了 我想要的是,每当我从菜单单击裁剪选项时,它就会触发picturebox的鼠标向下、鼠标移动和鼠标向上事件,以便可以执行裁剪 以下是此链接中的裁剪代码: 问题是如何仅在单击菜单项时实现裁剪控件。当用户单击picturebox时,上面链接中的代码就会触发,而不是当有人单击菜单项或按钮本身时 提

我正在做一个关于c#图像处理的项目,我的表单和菜单条中有一个picturebox,它有各种选项(操作),可以应用于图像(如模糊、深褐色、对比度等)。我正在考虑实现一个裁剪控制,我已经把它作为菜单项包括进去了

我想要的是,每当我从菜单单击裁剪选项时,它就会触发picturebox的鼠标向下、鼠标移动和鼠标向上事件,以便可以执行裁剪

以下是此链接中的裁剪代码:

问题是如何仅在单击菜单项时实现裁剪控件。当用户单击picturebox时,上面链接中的代码就会触发,而不是当有人单击菜单项或按钮本身时


提前感谢您的帮助。…

您应该将裁剪代码从事件处理程序中抽象出来,并放到一些同样包含图像的图像处理类中。然后,您可以将mousemove事件连接到特定的裁剪调用中,如:

public void MouseMoved(object sender, EventArgs e)
{
     SomeImage.Crop(e.X, e.Y);
}
但是,当您希望单击处理程序进行裁剪时,您将裁剪到什么坐标?您必须确定这一点,然后在菜单单击处理程序中实现它:

public void CropMenuClicked(object sender, EventArgs e)
{
    // TODO: determine someX and someY
    SomeImage.Crop(someX, someY);
}

在mousexyz处理程序中执行任何操作之前,请确保菜单项为checkonclick并测试其checked属性。