Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

samesdavis

[Resolvido] Validar campos alterados

Mensagens Recomendadas

samesdavis    0
samesdavis

Olá pessoal,

Estou desenvolvendo uma aplicação windows forms no C#, preciso da ajuda de vocês.

Tenho um form de cadastro de clientes, nele tenho um botão GRAVAR.

Desejo que esse botão fique habilitado APENAS se houver alteração em qualquer um dos campos do form.

Por exemplo: no campo de nome, o valor antigo era "Sames davis" e eu alterei para "Sames Davis"

então o botão GRAVAR ficará habilitado para eu gravar os dados. E depois que eu clicar em gravar, ele volta a ficar desabilitado.

Mas se depois que eu alterar e não clicar em gravar e resolver voltar ao valor anterior, o botão deverá voltar a ficar desabilitado.

Tenho mais de 50 campos no form, preciso de conhecer uma forma de não ter que entrar campo a campo e colocar o código no evento changed e habilitar ou desabilitar esse botão.

Alguém pode me dar essa ajuda?

Obrigado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
He B TeMy    37
He B TeMy

Torna-se complicado com o teu segundo ponto... queres que o botão seja reactivado caso as acções sejam revertidas... não tou a ver nenhuma opção sem teres que gravar os dados dos campos todos.

Se fosse só o caso de ser modificado, dependendo dos campos mas se fossem maior parte ou todos do mesmo tipo (textbox ou isso) podias meter uma void a 'receber' evento de todos os controls, e activares/desactivares o botão... mas se precisas também de reverter torna-se complicado.

Porque não crias outro botão com a opção de reverter mudanças em vez disso? Torna-se mais simples para ti.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
samesdavis    0
samesdavis

ok, posso até colocar um botão de cancelar, entendi o que quis dizer.

Mas quanto a alteração, tenho de chamar o enable = true/false em todos os controles?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
He B TeMy    37
He B TeMy

Se todos os controlos forem do mesmo tipo (ou se não podes agrupar) podes juntar os eventos TextChanged só num bloco de código... ou seja, alguma coisa assim:

textbox.textchanged += new EventHandler(NomeDoTeuEvento);
textbox2.textchanged += new EventHandler(NomeDoTeuEvento);

tens de fazer isto para todos os controlos, mas o evento apenas será chamado no

NomeDoTeuEvento

o que te deve facilitar a vida.

Isto é se não quiseres a função de ao reverter 'manualmente' o botão desactivar outra vez, porque aí não tou a ver outra hipótese sem ser um evento separado para cada campo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.