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;
}
}
我想更改大约 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;
}
}