我的表單有幾個向上控制的數字。所有這些控件,改變時,調用相同的方法:獲取控制調用方法的名稱
private void SetColors(object sender, EventArgs e)
如何確定哪個控件調用的方法?
我的表單有幾個向上控制的數字。所有這些控件,改變時,調用相同的方法:獲取控制調用方法的名稱
private void SetColors(object sender, EventArgs e)
如何確定哪個控件調用的方法?
這就是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
}
事件發生的控制存儲在變量sender
中。你只需要將其轉換回原來的類型。
謝謝,喬恩。我只是在學習C#,所以你可以包含一行代碼示例來說明你的意思嗎?這將是理想的獲取調用控件的名稱。 – Jimmy 2010-04-21 10:22:56
@Jimmy:好的,我在這裏舉了一個例子。如果您可以提供更多關於您想要發生的細節的信息,我們可能會幫助您更多。 – 2010-04-21 10:33:33
喬恩,那解決了我的問題。我真的贊同你的幫助。 – Jimmy 2010-04-21 10:59:17