c# - WinForms 鼠标输入 this.label.BackColor

c# - WinForms MouseEnter this.label.BackColor

我想更改大约 10 个或更多标签的 BackColor,但我不想为每个标签编写新的 private void label6_MouseEnter(object sender, EventArgs e) 函数。

如何在一个函数中处理鼠标进入的当前标签?这可能吗?

我想到了 this.label.BackColor = Color.FromArgb(0,0,0); 的内容,但这并没有解决标签..

在表单上放几个标签,在后面的代码中写下:

public partial class Form1 : Form
{
    public Color OriginalBackground;

    public Form1()
    {
        InitializeComponent();
        foreach (var control in Controls.OfType<Label>())
        {
            control.MouseEnter += label_MouseEnter;
            control.MouseLeave += label_MouseLeave;
        }
    }

    private void label_MouseEnter(object sender, EventArgs e)
    {
        OriginalBackground = ((Label) sender).BackColor;
        ((Label) sender).BackColor = Color.Red;
    }

    private void label_MouseLeave(object sender, EventArgs e)
    {
        ((Label) sender).BackColor = OriginalBackground;
    }
}