多个控件单击由一个事件处理的事件

时间:2016-08-02 01:54:39

标签: c# winforms events picturebox mouseclick-event

我正在创建一个基本的winform应用程序,它有许多带有点击事件的图片框。点击事件需要使用被点击的图片框的名称才能执行其余代码。我不想为所有图片框创建唯一的点击事件。我希望有一种简单的方法来获取这些信息,比如使用“sender”参数或事件参数。

1 个答案:

答案 0 :(得分:1)

为所有PictureBox添加一个单击事件处理程序:

pic1.Click += PictureBoxClick;
pic2.Click += PictureBoxClick;

然后将发件人投射到PictureBox以获取单击哪一个,这是一个粗略的例子:

private void PictureBoxClick(object sender, EventArgs e)
{
    var picBoxName = ((PictureBox)sender).Name;
}

不要忘记在表单卸载事件中取消挂起事件订阅:

pic1.Click -= PictureBoxClick;
pic2.Click -= PictureBoxClick;