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

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

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

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

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

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

别忘了在表单unload事件中取消挂起事件订阅:

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