Usuário com melhor resposta
Cancelar Evento Leave com Focus ao clicar em um botão

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();
}
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".
- Editado Juliano Nunes Silva Oliveira quarta-feira, 7 de dezembro de 2016 18:11 Faltou informar que era para substituir o evento.
- Sugerido como Resposta Juliano Nunes Silva Oliveira sexta-feira, 9 de dezembro de 2016 09:52
- Marcado como Resposta Nilton Cardoso Filho terça-feira, 13 de dezembro de 2016 20:30
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".
- Editado Juliano Nunes Silva Oliveira quarta-feira, 7 de dezembro de 2016 18:11 Faltou informar que era para substituir o evento.
- Sugerido como Resposta Juliano Nunes Silva Oliveira sexta-feira, 9 de dezembro de 2016 09:52
- Marcado como Resposta Nilton Cardoso Filho terça-feira, 13 de dezembro de 2016 20:30
-
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".
-
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".
-
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();
}
}