繁体   English   中英

检测右键单击哪个图片框

[英]Detect which picture box is being right clicked

在我的应用程序中,您右键单击一个图片框,当您单击一个选项时,它会带来一个工具条项来更改该图片框的图像,我的问题是如何知道要单击哪个图片框以便仅更改该图片框的图像右键单击,而不是为每个图片框创建1个工具条项目?

更新,找到解决方案。

private void redToolStripMenuItem_Click(object sender, EventArgs e)
{
    var box = ((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).
              SourceControl;
    if (box == PictureBox1)
    {
        PictureBox1.Image = Form1.Properties.Resources.red_square_button;
    }
    else if (box == PictureBox2)
    {
        PictureBox2color = "red";
        PictureBox2.Image = Form1.Properties.Resources.red_square_button;
    }
}

说明:当您单击工具栏菜单项时,该代码仅会影响右键单击的图片框。

为所有图片框的MouseClick事件订阅相同的事件处理程序。 然后将事件的发送方转换为PictureBox以获取引发事件的picturebox的实例:

private void pictureBox_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button != MouseButtons.Right)
        return;

    PictureBox picutreBox = (PictureBox)sender; 
    // use picutreBox
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM