如何正确使用"this"来访问表单控件?

Iva*_*nov 1 .net c# events winforms

在我的情况下,我有面板,但要明确我将在我的例子中使用按钮.

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

要捕获鼠标悬停的按钮,我尝试使用"this",但它链接到表单本身.

    private void buttonX_MouseHover(object sender, EventArgs e)
    {
        this.Text = "Test";
    }
Run Code Online (Sandbox Code Playgroud)

我期望鼠标悬停在指定按钮上的文本将其文本更改为"Test",但它仅发生在form.Text上.

在我的真实程序中,我有60个面板,我再次使用一个方法来处理所有OnMouseHover事件.我如何获得鼠标悬停的面板(或上例中的按钮)?

Mar*_*ell 8

this总是指类实例(表单).您需要转发发件人:

((Control)sender).Text = "Test";
Run Code Online (Sandbox Code Playgroud)

发件人(通常)是引发事件的实例 - 在使用来自多个控件的相同处理程序时非常有用.