在鼠标悬停时使标签下划线

时间:2013-12-31 18:44:13

标签: c# winforms label underline

当我用鼠标输入标签时,我需要使标签下划线。我怎样才能做到这一点?我尝试了几个选项,但它没有用。谁能告诉我怎么做?

3 个答案:

答案 0 :(得分:13)

您可以使用标签的MouseEnterMouseLeave事件来修改Font使用过的

private void OnMouseEnter(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Underline); 
}

private void OnMouseLeave(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Regular); 
}

如果您不需要修改字体名称或大小,可以直接使用new Font(label1.Font, FontStyle.Underline)

此外,如果您需要添加多个样式,可以使用|运算符:

label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Underline | FontStyle.Bold); 

答案 1 :(得分:2)

您可以使用MouseEnterMouseLeave事件,如下所示:

private void label1_MouseEnter(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font, FontStyle.Underline);
}

private void label1_MouseLeave(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font, FontStyle.Regular);
}

答案 2 :(得分:2)

使用此。
   设置一个新的Font of Instance

private void label1_MouseHover(object sender, EventArgs e)
        {
            label1.Font = new Font(label1.Font.Name, 8, FontStyle.Underline);
            label1.Font = new Font(label1.Font.Name, 8, FontStyle.Bold|FontStyle.Underline);//For Bold Also
        }   
private void label1_MouseLeave(object sender, EventArgs e)
        {
            label1.Font = new Font(label1.Font.Name, 8);
        }