如何使用C#.net将鼠标单击事件添加到Picturebox

如何使用C#.net将鼠标单击事件添加到Picturebox,c#,mouseevent,C#,Mouseevent,我正在创建一个简单的库存系统。如果我单击picturebox 1 relavent消息应显示“pic1”,如果我单击piturebox 2 relavent消息应显示“pic2”,则仅需要此选项 我尝试了代码,但它不起作用。首先,您正在使用表单的鼠标单击事件,您需要替换: this.MouseClick+=MouseClick; 作者: pictureBox1.MouseClick+=MouseClick; pictureBox2.MouseClick+=鼠标单击; 选项1:使用发送者对象

我正在创建一个简单的库存系统。如果我单击picturebox 1 relavent消息应显示“pic1”,如果我单击piturebox 2 relavent消息应显示“pic2”,则仅需要此选项


我尝试了代码,但它不起作用。首先,您正在使用表单的鼠标单击事件,您需要替换:

this.MouseClick+=MouseClick;
作者:

pictureBox1.MouseClick+=MouseClick;
pictureBox2.MouseClick+=鼠标单击;
选项1:使用发送者对象
鼠标单击事件为您提供了参数
sender
,它是触发事件的对象。
所以你可以这样使用它:

var clickedPictureBox=(PictureBox)发送方;
如果(单击PictureBox==pictureBox1)
...
选项2:使用标签
您可以在winforms元素中设置标记并使用它们。例如,转到设计器,将两张图片的标签设置为“Pic1”和“Pic2”,然后按如下方式使用:

var clickedPictureBox=(PictureBox)发送方;
如果(单击PictureBox.Tag.ToString()=“Pic1”)
...

消息不显示如果我单击图片1查看我的编辑,您使用的是表单的单击事件,而不是图片的
public Form1()
    {
        InitializeComponent();
        this.MouseClick += mouseClick;

    } 
    private void mouseClick(object sender, MouseEventArgs e)
    {

        var clickedPictureBox = (PictureBox)sender;
        if (clickedPictureBox == pictureBox1)
        {
            MessageBox.Show("Pic1");

        }
    }