Quero habilitar o botão de Salvar somente se os controles do formulário (ComboBox, TextBox e Checkbox) sofrerem qualquer tipo de alteração. Não quero que seja aberta conexões com o banco de forma desnecessária.
Pesquisando, encontrei no stackeroverflow um tópico que me chamou atenção. Have event fire whenever any changes made to textboxes, comboboxs, etc. inside form. É exatamente do que preciso.
Tentei usar o código que foi sugerido ao dono da pergunta, e entendi mais ou menos como funciona, mas não consegui implantar.
Alguma sugestão de como posso fazer isso?
Boa tarde. Talvez seria melhor você fazer uma verificação no evento Click do botão Salvar. Possibilitando validações dos campos e a conexão se os mesmos estiverem preenchidos.
gabernardone,
Para habilitar o botão, TODOS os controles devem estar, digamos, “alterados/preenchidos”, ou deve ocorrer quando QUALQUER UM deles for alterado?
Se for qualquer um, crie um método e chame o método através do evento change de cada controle, lembrando que seu método será acionado SEMPRE, EM CADA CONTROLE. É isso mesmo?
Se TODOS os controles precisam estar preenchidos/alterados, então execute a sugestão do Isaque_Fernando.
Para implementar a solução do stackoverflow você teria que pesquisar sobre eventos para entender o funcionamento.
Com relação a abertura desnecessária do banco e como você não citou nada sobre a aplicação (se é desktop, web, etc. que possuem soluções específicas para cada plataforma).
Não é comum abrir/fechar a conexão a cada persistência. Geralmente (através do login) o usuário é validado, a conexão com o banco é realizada e a desconexão é feita no encerramento da aplicação. Mas como toda regra tem uma exceção…
Você deve procurar soluções que permitam guardar o status da conexão, de forma que você a possa “enxergar” nas diversas partes de seu aplicativo, mantendo essa (única) conexão sempre ativa.
Nesse caso, você não precisa abrir a conexão todas as vezes, basta verificar se a conexão ainda está aberta/ativa (se estiver fechada, abra) e execute a persistência.