C#发送器问题

C#发送器问题,c#,C#,当我在我的项目中按下图片盒时,我会联系按下的方法卡。 通过此代码 this.picturebox.Click += new System.EventHandler(this.card_Pressed) 我有一些picturebox,因为它们都链接到这个方法,现在我想通过联系方法中的发送者并将其与picturebox的名称进行比较来检查哪个已按下 if( sender == picturebox1) { //something } 当我使用按钮时,这个功能就正常工作了,但当我使用pict

当我在我的项目中按下图片盒时,我会联系按下的方法卡。 通过此代码

 this.picturebox.Click += new System.EventHandler(this.card_Pressed)
我有一些picturebox,因为它们都链接到这个方法,现在我想通过联系方法中的发送者并将其与picturebox的名称进行比较来检查哪个已按下

 if( sender == picturebox1)
{
//something
 }
当我使用按钮时,这个功能就正常工作了,但当我使用picturebox时,它就不工作了,为什么


谢谢

您可以使用图片框的Name属性,
(发送方为PictureBox)。Name==…
如果您执行空检查,它会更好:

var box = (sender as PictureBox);
if (box != null && box.Name == "Blah")
{
  ///
}

您可以使用图片框的Name属性,
(发送方为PictureBox)。Name==…
如果您执行空检查,则会更好:

var box = (sender as PictureBox);
if (box != null && box.Name == "Blah")
{
  ///
}

这行吗
if(object.Equals(sender,picturebox1))
try if((picturebox)sender==picturebox1)我们需要更多信息。您发布的代码有效,错误一定在别处。嗯。。当我使用按钮时,sender中的“base”与按钮名称相同。当我对picturebox做同样的操作时,我在基本{System.Windows.Forms.picturebox,SizeMode:StretchImage}System.Windows.Forms.Control{System.Windows.Forms.picturebox}上得到的结果是,没有明显的原因说明这不起作用。实际再现问题的邮政编码。这行吗?:
if(object.Equals(sender,picturebox1))
try if((picturebox)sender==picturebox1)我们需要更多信息。您发布的代码有效,错误一定在别处。嗯。。当我使用按钮时,sender中的“base”与按钮名称相同。当我对picturebox做同样的操作时,我在基本{System.Windows.Forms.picturebox,SizeMode:StretchImage}System.Windows.Forms.Control{System.Windows.Forms.picturebox}上得到的结果是,没有明显的原因说明这不起作用。发布代码,实际上再现了问题。OP为什么要这样做?如果发件人不是PictureBox,这不会引发异常吗?@IAbstract,第一段引发异常,但我的完整答案不会引发任何异常。@Konrad Rudolph,我想这句话:“我想通过联系方法中的发送者并将其与picturebox的名称进行比较来检查按下了哪一个按钮”OP表示希望这样做,但为什么我不知道。@Saeed你是对的,但OP的意思似乎只是比较对象(参见后续代码)在任何情况下,比较对象的名称只是达到相同效果的一种迂回方式。OP为什么要这样做?如果发送者不是PictureBox,这不会引发异常吗?@IAbstract,第一段引发异常,但我的完整答案不会引发任何异常。@Konrad Rudolph,我认为这句话:我想通过联系方法中的发送者并将其与图片盒的名称进行比较来检查按下了哪个按钮。“说OP想要这个,但为什么我不知道。@Saeed你是对的,但OP似乎只是指比较对象(参见后续代码)在任何情况下,比较物体的名称只是达到相同效果的一种迂回方式。