如何知道MouseClick事件发生在哪个图像?

时间:2017-03-30 14:25:18

标签: c# winforms event-handling mouseevent

我的Windows窗体上有2个玩家的2张图片。我为他们两个添加了MouseClick个事件。现在,当我点击鼠标时,它会激活两个玩家的两个事件。我只想知道我点击的一个玩家。 我该怎么做?

this.MouseClick += new System.Windows.Forms.MouseEventHandler(this._player1_MouseClick);
this.MouseClick += new System.Windows.Forms.MouseEventHandler(this._player2_MouseClick);

1 个答案:

答案 0 :(得分:2)

假设您有两个带有图片的PictureBox控件。因此,您已经从设计师发布了代码,我还假设您通过设计师订阅了事件。

  1. 选择PictureBox控件之一
  2. 事件标签中找到Click属性,输入Player_Click作为处理程序名称,然后按Enter键。您已订阅Click第一次控制事件。
  3. 选择第二个PictureBox
  4. 事件标签中找到Click属性,点击下拉列表并选择Player_Click。按Enter键。您已使用相同的事件处理程序订阅第二个控件的Click事件。
  5. 现在转到代码视图(您可以双击任何这些控件)并找到Player_Click方法
  6. 为了找到点击了哪个控件,您需要将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; 
    }