我的表单有几个数字上下控件。所有这些控件在更改时调用相同的方法:
private void SetColors(object sender, EventArgs e)
如何确定哪个控件调用了该方法?
最佳答案
这就是 sender
参数的用途。
如果知道时间,可以适当转换:
NumericUpDownControl control = (NumericUpDownControl) sender;
如果它可以是多种类型中的任何一种,您可以使用 as
和 null 测试,或者 is
后跟强制转换。
当然,您只需要转换为包含您需要的成员的类型 - 例如,您可能只转换为 Control
。
编辑:假设您只想要名称,并且您知道发件人将始终是某种控件。您可以使用:
private void SetColors(object sender, EventArgs e)
{
Control control = (Control) sender;
String name = control.Name;
// Use the name here
}
关于c# - 获取控件调用方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681949/