c# - 确定谁调用事件处理程序

标签 c# winforms visual-studio-2008 event-handling windows-ce

我的应用程序带有我的标签,以便在修改其文本时集中显示。

为了做到这一点,我通过 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/

相关文章:

c# - 如何控制标签或任何控件PictureBox的位置?

C# 节流 For 循环

c++ - 如何使用 Visual Studio 2008 将字符串映射到函数?

visual-studio-2008 - JavaScript 库以及 Visual Studio

c++ - Visual Studio 2008 中的 cl.exe 包装器

c# - 使用断字将字符串拆分为固定长度的文本行

c# - 在 C# 中使用宏创建新的 Word 文档

c# - Bitmap.GetPixel() 返回错误值

c# - 在 datagridview 中获取选定行的值并将它们相加

c# - 在 C# 中使用 WINAPI 时如何检测何时滚动到窗口底部