2011-06-11 39 views
0

當我在我的項目中按下一個picturebox時,我聯繫方法card_pressed。 通過這個代碼C#發件人問題

this.picturebox.Click += new System.EventHandler(this.card_Pressed) 

我有幾個pictureboxes所有鏈接到這個方法,現在我想檢查已經通過該方法發送者接觸,並比較它在PictureBox的名稱壓制。

if(sender == picturebox1) 
{ 
//something 
} 

我得到這個工作時,即時通訊使用按鈕,但不是當我使用圖片盒時,爲什麼?

謝謝!

+0

工作的呢? :'if(object.Equals(sender,picturebox1))' – Omer 2011-06-11 14:46:21

+0

try ** if((picturebox)sender == picturebox1)** – 2011-06-11 14:49:18

+0

我們需要**更多信息**。您發佈的代碼*工作*,錯誤必須在其他地方。 – 2011-06-11 14:54:46

回答

3

您可以使用圖片框的名稱屬性,(sender as PictureBox).Name == ...只是如果你做一個空檢查它會更好:

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

OP爲什麼要這麼做? – 2011-06-11 14:54:10

+0

如果發件人不是PictureBox,這不會拋出異常嗎? – IAbstract 2011-06-11 16:07:20

+0

@IAbstract,第一段引發異常,但我的完整答案不會引發任何異常。 – 2011-06-12 05:11:40