图片框点击事件在图片框的上下文菜单菜单项点击之前触发

picturebox click event fires before the picturebox's contextmenu menuitem click

我有一个 PictureBox.Click 事件,还有一个 PictureBox.ContextMenu -- 当我点击上下文菜单中的菜单项时,它首先触发 PictureBox.Click 事件,然后附加到菜单项的事件。

这不是我想要的。有没有办法只触发菜单项事件(或至少首先触发)?

当没有 e.Handled 参数时,您可以使用标志来中止 Click 代码:

bool flag = false;

private void pb_target_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        Console.WriteLine("pb_target_MouseDown RIGHT");
        flag = true;
    }

    else flag = false;
}

private void pb_target_MouseClick(object sender, MouseEventArgs e)
{
    if (flag) { flag = false; return; }

    Console.WriteLine("pb_target_MouseClick");
}