悬停在:Button Change using Flatyle properties C#

Hover over: Button Change using Flatyle properties C#

我在 WinForms 中工作,我的表单上有 4 个按钮。我希望能够将鼠标悬停在它上面并将 FlatStyle 从 Flat 更改为 System。

当您将鼠标悬停在我的代码上时,我的代码会将所有按钮转换为系统样式,这与我的想法不符。

所有按钮都应保持平坦,直到您将鼠标悬停在它们上面。如果您将鼠标悬停在按钮上,它应该会变回平面按钮

    private void All_Button_Hover_MouseHover(object sender, EventArgs e)
    {
        btn_Back.FlatStyle = FlatStyle.System;
        Btn_Forward.FlatStyle = FlatStyle.System;
        btn_Print.FlatStyle = FlatStyle.System;
        btn_Open.FlatStyle = FlatStyle.System;
    }

这里有一个关于如何处理这个问题的建议。

您已经在单个事件方法中设置了所有按钮,这很好。由于触发事件的按钮存储在 sender 中,您可以使用它:

private void All_Button_Hover_MouseHover(object sender, EventArgs e)
{
    ((Button)sender).FlatStyle = FlatStyle.System;
}

要将按钮改回原来的 FlatStyle.Flat 样式,您可能还需要将它们的所有 MouseLeave 事件订阅到一个方法:

private void All_Button_Hover_MouseLeave(object sender, EventArgs e)
{
    ((Button)sender).FlatStyle = FlatStyle.Flat;
}