Cancelando evento Validating ao clicar em um algum botão.
23/03/2015
0
Tenho um formulário que possui em evento Validating em um maskedtextbox para validar se o CNPJ é válido. A validação ocorre sem problemas. A questão é como eu possa cancelar essa validação ao clicar em um botão, que no caso seria o btnCancelar.
Segue abaixo código que estou usando.
private void mtbCnpj_Validating(object sender, CancelEventArgs e)
{
TRSUtil trsUtil = new TRSUtil();
if (trsUtil.ValidarCnpj(mtbCnpj.Text) == true)
txtIe.Focus();
else
{
MessageBox.Show("CNPJ Inválido", "SIGPRO - Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
mtbCnpj.Clear();
mtbCnpj.Focus();
}
}
Aplicação é WindowsForm.
Linguagem C#.
Elessandro Poças
Posts
23/03/2015
Jothaz
Você deve ter um botão gravar ou algo parecido?
Então ao invés de fazer a validação no mtbCnpj_Validating faça no click do botão gravar.
Assim quando você clicar em cancelar não irá rodar o método de validação.
23/03/2015
Elessandro Poças
Obrigado pela resposta. O problema é que quando vai se cadastrar um novo cliente ou empresa, a um requisito que exija que quando se informe o CPF ou Cnpj seja feita a validação e uma consulta no banco de dados, em que caso exista o mesmo deve-se preencher os campos do formulário.
23/03/2015
Jothaz
Agora com Validating ou mesmo LostFocus você só vai conseguir cancelar ou fechar o form se informar um campo com conteúdo válido.
O que posso sugerir as cegas é:
Crie um campo para pesquisar o CPF/CNPJ.
Desabilite todos os campos e deixe somente o de CPF/CNPJ habilitado.
Crie um botão salvar e oculte.
Crie um botão pesquisar e nele coloque a chamada a validação e pesquisa.
Se existir preencha os campos e habilite e desabilite o CPF/CNPJ. Exiba um botão salvar.
Senão existe exiba mensagem perguntando se quer cadastrar. Se quiser habilite os campos com valor vazio e desabilite o CPF/CNPJ. Exiba um botão salvar.
Crie o botão cancelar para desistir da operação.
Isto é somente um ideia de como pode ser feito e lembre-se os requisitos dizem somente o que fazer o como quem define é o desenvolvedor.
Clique aqui para fazer login e interagir na Comunidade :)