我的应用程序带有我的标签,以便在修改其文本时集中显示。
为了做到这一点,我通过 EventHandler 调用了一个方法。我想对我的每个标签使用相同的方法,但我不知道如何在方法中识别哪个标签调用它。
如果我有这样的代码:
lbl_TextChanged(object sender, EventArgs e)
{
..code..
label1.Location = new Point("label's location");
..more code..
}
然后我从另一个标签再次调用该方法,我如何修改该代码才能知道哪个标签调用它?
解决方案 感谢您的帮助,这是我第一次尝试使用事件处理程序做一些事情并且不知道我需要转换发送者。这解决了我的问题。
感谢您的帮助!
最佳答案
事件处理程序签名中的sender
对象是引发事件的控件。
只需转换此对象,您就可以访问所有控件的信息。
Label label = sender as Label;
您确实需要小心一点,因为您假设只有 Label
类型的控件引发具有此处理程序方法的事件。
关于c# - 确定谁调用事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821688/