将鼠标输入和鼠标离开事件设置为多个标签,并在选项卡控件中显示单个事件(Windows窗体) [英] Set mouse enter and mouse leave events to several labels with single event in a tab control (windows forms)
问题描述
我的标签控件中有几个标签,最初它们的字体是常规的,但是当鼠标输入特定标签时,我需要将其中一个标签设置为BOLD。我们可以为每个标签编写Mouse Enter事件和Mouse Leave事件。但是我只需要几行代码,当我的鼠标进入特定标签时,我需要将Label Bold标记为粗体。
我不需要将这些事件写入每个标签。
有人建议吗?
我尝试过的事情:
Hi, I am having several labels in my tab control, initially their font will be in regular, but i need to make one of the label BOLD when mouse entered on a particular label. we can write Mouse Enter event and Mouse Leave event for each and every label. But i need only a few lines of code, in which i need to make the Label Bold when my mouse enters on a particular label.
i dont need to write these events to each and every label.
Can any one suggest?
What I have tried:
private void linkLabel24_MouseEnter(object sender, EventArgs e)
{
linkLabel24.Font = new Font(linkLabel24.Font.Name, 10, FontStyle.Bold);
}
private void linkLabel24_MouseLeave(object sender, EventArgs e)
{
linkLabel24.Font = new Font(linkLabel24.Font.Name, 10, FontStyle.Regular);
}
推荐答案
试试
try
private void Form1_Load(object sender, EventArgs e)
{
foreach (TabPage tab in tabControl1.Controls)
{
foreach (Label lbl in tab.Controls.OfType<Label>())
{
lbl.MouseEnter += lbl_MouseEnter;
lbl.MouseLeave += lbl_MouseLeave;
}
}
}
void lbl_MouseLeave(object sender, EventArgs e)
{
Label lbl = (Label)sender;
lbl.Font = new Font(lbl.Font.Name, 10, FontStyle.Regular);
}
void lbl_MouseEnter(object sender, EventArgs e)
{
Label lbl = (Label)sender;
lbl.Font = new Font(lbl.Font.Name, 10, FontStyle.Bold);
}
这篇关于将鼠标输入和鼠标离开事件设置为多个标签,并在选项卡控件中显示单个事件(Windows窗体)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!