none
Cancelar Evento Leave com Focus ao clicar em um botão RRS feed

  • Pergunta

  • Gostaria de saber como eu poderia proceder para cancelar um Evento Leave, ou Validated de um Textbox ao apertar em um button.

    Exemplo do código:

    EVENTO LEAVE DO TEXTBOX

    private void textBoxNomeFantasia_Leave(object sender, EventArgs e)

    {

               if (this.textBoxNomeFantasia.Text == "")
                {
                    MessageBox.Show("Campo Obrigatório: Nome Fatansia");
                    this.textBoxNomeFantasia.Focus();
                }

    }

    AO CLICAR NO EVENTO DO BUTTON(no caso o cancelar) O MESMO NÃO FUNCIONA DEVIDO AO FOCUS NO TEXTBOX, COMO SE EU ESTIVESSE EM UM LOOP.

    Só fecha se eu apertar no X do Form.

    private void buttonCancelar_Click(object sender, EventArgs e)

    {      
                    this.Close();

    }

    quarta-feira, 7 de dezembro de 2016 17:30

Respostas

  • Tente alterando seu código do evento Leave para o LostFocus assim:

    private void textBoxNomeFantasia_LostFocus(object sender, EventArgs e)
    
    {
    
        if (this.buttonCancelar.Focused) return;
    
    
        if (this.textBoxNomeFantasia.Text == "")
        {
            MessageBox.Show("Campo Obrigatório: Nome Fatansia");
                    this.textBoxNomeFantasia.Focus();
        }
    
    }


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".



    quarta-feira, 7 de dezembro de 2016 18:08

Todas as Respostas

  • Tente alterando seu código do evento Leave para o LostFocus assim:

    private void textBoxNomeFantasia_LostFocus(object sender, EventArgs e)
    
    {
    
        if (this.buttonCancelar.Focused) return;
    
    
        if (this.textBoxNomeFantasia.Text == "")
        {
            MessageBox.Show("Campo Obrigatório: Nome Fatansia");
                    this.textBoxNomeFantasia.Focus();
        }
    
    }


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".



    quarta-feira, 7 de dezembro de 2016 18:08
  • Nilton,

    O código funcionou contigo? 


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quinta-feira, 8 de dezembro de 2016 11:12
  • Nilton,

    O código funcionou contigo? 


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    Usei os eventos Enter dos outros controles na hora do tab e click para verificar e resolveu até então, mas estarei testando a sugestão dele que vai me economizar muito código se funcionar.
    terça-feira, 13 de dezembro de 2016 19:15
  • Tente alterando seu código do evento Leave para o LostFocus assim:

    private void textBoxNomeFantasia_LostFocus(object sender, EventArgs e)
    
    {
    
        if (this.buttonCancelar.Focused) return;
    
    
        if (this.textBoxNomeFantasia.Text == "")
        {
            MessageBox.Show("Campo Obrigatório: Nome Fatansia");
                    this.textBoxNomeFantasia.Focus();
        }
    
    }


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".



    Realizei o teste com o próprio método Leave e funcionou bem, você me economizou bastantes linhas de código, obrigado!

    private void textBoxNome_Leave(object sender, EventArgs e)
            {
                if (this.buttonCancelar.Focused) return;

                else if (this.textBoxNome.Text == "")
                {
                    MessageBox.Show("O campo Nome é obrigatório");
                    this.textBoxNome.Focus();
                }
            }

    terça-feira, 13 de dezembro de 2016 20:31