c# - 如何正确使用 "this"访问表单控件?

标签 c# .net winforms events

在我的例子中,我有面板,但为了清楚起见,我将在示例中使用按钮。

我有 5 个(或更多)按钮,我为所有五个按钮设置了一个事件,例如 - OnMouseHover。如果所有事件都链接到一个方法,我如何获得鼠标悬停在哪个按钮上

为了捕获鼠标悬停的按钮,我尝试使用“this”,但它链接到表单本身。

    private void buttonX_MouseHover(object sender, EventArgs e)
    {
        this.Text = "Test";
    }

我希望鼠标悬停在指定按钮上的文本将其文本更改为“测试”,但它发生在表单上。仅文本。

在我的真实程序中,我有 60 个面板,我再次对其中任何面板上的所有 OnMouseHover 事件使用一种方法。如何获取鼠标悬停的面板(或上例中的按钮)?

最佳答案

this 始终引用类实例(表单)。您需要转换发件人:

((Control)sender).Text = "Test";

发送者(通常)是引发事件的实例 - 在多个控件中使用相同的处理程序时很有用。

关于c# - 如何正确使用 "this"访问表单控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031746/

相关文章:

c# - 我应该在哪里保存应用程序数据?

c# - 从 .NET 开始 - ASP.NET、WPF、Silverlight 或命令行 C#?

c# - 将数据添加到缓存时出现重复的键

c# - 将复合键与 Entity Framework Core 结合使用并将其中的一部分用作外键

c# - 两个相似的重载?或者一个重载调用另一个?

c# - 在流畅的 NHibernate SubclassMap 中映射多列用户类型的正确方法是什么?

c# - 从 Excel 单元格读取十进制值(在 C# 中)

c# - DataGridView 在键入时更新单元格值

c# - 用于 powercfg 电池报告的 GUI

c# - 在 C# 中创建(按需)SQL Server 2008 Express 数据库的最佳实践?