C # - MouseLeave Event Does Not Work on Different Label

0

I created two Label's with different names and created two methods for each Label responsible for making a Hover event similar to that in CSS / p>

//Evento responsável por fechar a aplicação através do Label "X".
private void closeApplicationClick(object sender, EventArgs e)
{    
    this.Close(); //Responsável por fechar a aplicação por meio do "X".            
}  

//MouseEvent para sublinhar o Label "Cadastrar um novo usuário"
private void newUserOnMouseEnter(object sender, EventArgs e)
{
    //Atribuição de uma nova propriedade "Underline" para que o Label "Cadastrar um novo usuário" seja sublinhado.
    newUser.Font = new Font(newUser.Font.Name, newUser.Font.SizeInPoints, FontStyle.Underline);
}

//MouseEvent para remover o sublinado do Label "Cadastrar um novo usuário"
private void newUserOnMouseLeave(object sender, EventArgs e)
{
    //Atribuição de uma nova propriedade "Regular" para que o sublinhado seja removido do Label "Cadastrar um novo usuário"
      newUser.Font = new Font(newUser.Font.Name, newUser.Font.SizeInPoints, FontStyle.Underline);
}

//MouseEvent para sublinhar o Label "Esqueci a minha senha"
private void ForgotPasswordOnMouseEnter(object sender, EventArgs e)
{
    //Atribuição de uma nova propriedade "Underline" para que o Label "Esqueci a minha senha" seja sublinhado.
      forgotPassword.Font = new Font(forgotPassword.Font.Name, forgotPassword.Font.SizeInPoints, FontStyle.Underline);
}

//MouseEvent para remover o sublinado do Label "Esqueci a minha senha"
private void ForgotPasswordOnMouseLeave(object sender, EventArgs e)
{
    //Atribuição de uma nova propriedade "Regular" para que o sublinhado seja removido do Label "Esqueci a minha senha"
      forgotPassword.Font = new Font(forgotPassword.Font.Name, forgotPassword.Font.SizeInPoints, FontStyle.Regular);
}

The two methods have different names, I tried to change the variable from object sender but it did not work, until EventArgs e I changed to another variable and it did not work either.

I thought it would work perfectly however only the I forgot my password is working perfectly.

I've already set events MouseEnter and MouseLeave in Label properties, but it does not work.

Check out this image:

    
asked by anonymous 24.06.2015 / 00:00

1 answer

0

Israel , I suggest centralizing a method to underline (or stylize in a general way), so what works for one will work for others, and of course keep the code cleaner for reviews:

forgotPassword.MouseEnter += (sender, e) => EstilizaLink(sender, e, "sublinhar");

or

forgotPassword.MouseLeave += (sender, e) => EstilizaLink(sender, e, "naoSublinhar");

And the EstilizaLink(...) method:

void EstilizaLink(object sender, EventArgs e, string acao)
{
    var label = ((Label) (sender));
    var estilo = (acao == "sublinhar" ? FontStyle.Underline : FontStyle.Regular);

    label.Font = new Font(label.Font.Name, label.Font.SizeInPoints, estilo);
}

Obviously the method may bring other features. Anyway, I tested it here and had no problem underlining and removing the underscore on mouseEnter and mouseLeave.

    
24.06.2015 / 01:05