我的窗口表单上有 2 张图片供 2 名玩家使用。 我为他们俩都添加了MouseClick
事件。现在,当我单击鼠标时,它会激活两个玩家的两个事件。我只想知道我点击的一个玩家。我该怎么做?
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this._player1_MouseClick);
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this._player2_MouseClick);
假设您有两个带有图像的PictureBox
控件。因此,您已经发布了设计器的代码,我还假设您是通过设计器订阅事件的。
- 选择
PictureBox
控件之一 - 在"事件">选项卡中,找到
Click
属性,键入Player_Click
作为处理程序名称,然后按 Enter。您已订阅Click
第一个控制事件。 - 选择第二个
PictureBox
- 在"事件"选项卡中找到
Click
属性,单击下拉列表并选择"Player_Click
"。按回车键。您已使用相同的事件处理程序订阅第二个控件Click
事件。 - 现在转到代码视图(您可以双击其中任何一个控件(并找到
Player_Click
方法
为了查找单击了哪个控件,您需要将sender
参数转换为PictureBox
类型:
private void Player_Click(object sender, EventArgs e)
{
var pictureBox = (PictureBox)sender;
// use control which was clicked. e.g. get it's name
var name = pictureBox.Name;
}