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

Multiple Control Click Events handled by one event

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

您为所有图片框添加一个单击事件处理程序:

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;