确定谁调用事件处理程序



我的应用程序写了标签,以便在修改文本时集中。

为此,我通过事件处理程序调用了一个方法。我想对我的每个标签使用相同的方法,但我不知道如何在调用它的方法中识别哪个标签。

如果我有这样的代码:

       lbl_TextChanged(object sender, EventArgs e)
        {
           ..code..
           label1.Location = new Point("label's location");
           ..more code..
        }

我再次从另一个标签调用该方法,我如何修改该代码以了解哪个标签调用它?

解决方案 感谢您的帮助,这是我第一次尝试使用事件处理程序制作一些东西,并且不知道我需要强制转换发送者。这就解决了我的问题。

感谢您的帮助!

事件处理程序签名中的sender对象是引发事件的控件。

只需强制转换此对象,即可访问控件的所有信息。

Label label = sender as Label;

确实需要对此更加小心,因为您假设只有类型 Label 的控件才会引发具有此处理程序方法的事件。

这就是

sender的用途:

Point p = ((Label)sender).Location;
// adjust p 
label1.Location = p;

相关内容

  • 没有找到相关文章

最新更新