Pergunta

I need to make label underline when I enter the label with my mouse. How can I do that? I tried few options but it didn't work. Can anyone tell me how to do that?

Foi útil?

Solução

You can use the MouseEnter and MouseLeave events of your label to modify the Font used

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); 
}

If you do not need to modify the font name or size you can directly use new Font(label1.Font, FontStyle.Underline)

Also, if you need to add multiple styles, you can use the | operator :

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

Outras dicas

You can use the MouseEnter and MouseLeave events like so:

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);
}

Use this.
set a new Instance of Font

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);
        }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top