2010-04-21 43 views
1

我的表單有幾個向上控制的數字。所有這些控件,改變時,調用相同的方法:獲取控制調用方法的名稱

private void SetColors(object sender, EventArgs e) 

如何確定哪個控件調用的方法?

回答

9

這就是sender參數的用途。

如果你知道的時候,你可以適當地投它:

NumericUpDownControl control = (NumericUpDownControl) sender; 

如果它可以是任何有幾種類型,你可以使用as和空測試,或is隨後鑄造。例如,你只需要投射到包含你需要的成員的類型 - 所以你可能只投射到Control

編輯:假設你只是想要這個名字,並且你知道發件人總是某種控件。您可以使用:

private void SetColors(object sender, EventArgs e) 
{ 
    Control control = (Control) sender; 
    String name = control.Name; 
    // Use the name here 
} 
+0

謝謝,喬恩。我只是在學習C#,所以你可以包含一行代碼示例來說明你的意思嗎?這將是理想的獲取調用控件的名稱。 – Jimmy 2010-04-21 10:22:56

+0

@Jimmy:好的,我在這裏舉了一個例子。如果您可以提供更多關於您想要發生的細節的信息,我們可能會幫助您更多。 – 2010-04-21 10:33:33

+0

喬恩,那解決了我的問題。我真的贊同你的幫助。 – Jimmy 2010-04-21 10:59:17

1

事件發生的控制存儲在變量sender中。你只需要將其轉換回原來的類型。

相關問題