Usuário com melhor resposta
Dúvida sobre MessageBox.Show

Pergunta
-
Boa tarde pessoal
Estou com a seguinte dúvida...
Fiz um pequeno progaminha de agenda em C#, na hora de clicar no botão gravar, o sistema vai analisar se o campo nome está em branco ou não, se tiver em branco ele dá uma mensagem avisando que nao pode ser em branco, e foca no campo branco, senão ele grava tudo..... o problema está que quando clico no MessageBox ele fecha o sistema inteirinho, na verdade só queria que ele desse uma mensagem, segue o codigo...
private void button5_Click(object sender, EventArgs e) { if (txtNome.Text == "") { MessageBox.Show("Nome em branco!!!", "Erro ao gravar"); } else { //gravar inclusao/alteracao string sNome = txtNome.Text; string sTelRes = txtResidencial.Text; string sTelCom = txtComercial.Text; string sCel1 = txtCel1.Text; string sCel2 = txtCel2.Text;
- Movido Ari C. RaimundoModerator quinta-feira, 12 de maio de 2011 02:00 Movido para fórum apropriado (De:C#)
Respostas
-
Pessoal, muito obrigado mais uma vez.... o problema todo estava porque eu abri o banco de dados, no evento errado do form... no evento "activated", percebi que do "nada" o sistema também fechava sozinho!!! Foi mudar a abertura do banco no evento correto, e tudo funcionou perfeitamente, inclusive o MessageBox, agora ele exibe sem fechar o sistema.... estou postando porque pode ajudar outras pessoas, ou seja "o problema central era que o banco não estava aberto em um dos eventos possiveis, quando defini como actived - toda hora ele ficava tentando abrir o banco de dados - que já estava aberto, e ainda por cima, na abertura não tratei o erro com try - catch ... dai já viu né, ou seja, bobagem - atras de bobagem - estou iniciando em C# e to gostando muito!!!"
Obrigado a todos.
- Marcado como Resposta Andy-Koala sexta-feira, 13 de maio de 2011 12:28
Todas as Respostas
-
Nao tem nada de errado com o trecho de codigo que vc postou. Cole aqui todo o codigo do evento click.. creio que o problema esta um pouco mais distante nesse seu codigo. Para finalizar todo um sistema é necessário que vc execute um: Environment.Exit(0); Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
SOGI INFORMATIQUE LTÉE (http://www.sogi.com) -
Só para complementar tenta usar um return depois de exibir a mensagem e veja se funciona, mas acho que deve ser isto que o William postou ex:
private void button5_Click(object sender, EventArgs e) { if (txtNome.Text == "") { MessageBox.Show("Nome em branco!!!", "Erro ao gravar"); return; } else {
Abraços e espero ter ajudado.
Estudar, Estudar e Estudar! Não existe caminho curto.- Sugerido como Resposta Ari C. RaimundoModerator quinta-feira, 12 de maio de 2011 01:51
-
andaohse,
Concordo com a sugestão do Pablo em relação ao return. De qualquer forma, existem maneiras melhores de realizar a validação dos controles em Windows Forms, veja os links abaixo.
ErrorProvider Component (Windows Forms)
http://msdn.microsoft.com/en-us/library/95ysxkwyErrorProvider, HelpProvider e ToolTip
http://www.linhadecodigo.com.br/Artigo.aspx?id=184Obs: Estou movendo sua thread para o fórum de Windows Forms. Das próximas vezes que tiver alguma dúvida sobre essa tecnologia, poste por lá.
Att.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com -
Busca no seu código se não tem nehum .close, às vezes deve ter algo em outro evento que feche essa aplicação.
Se quiser usar o ErrorProvider, fiz um artigo no meu blog explicando. Está em VB mas está fácil de converter
http://www.maestrodotnet.com.br/?p=295
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro -
Pessoal, muito obrigado mais uma vez.... o problema todo estava porque eu abri o banco de dados, no evento errado do form... no evento "activated", percebi que do "nada" o sistema também fechava sozinho!!! Foi mudar a abertura do banco no evento correto, e tudo funcionou perfeitamente, inclusive o MessageBox, agora ele exibe sem fechar o sistema.... estou postando porque pode ajudar outras pessoas, ou seja "o problema central era que o banco não estava aberto em um dos eventos possiveis, quando defini como actived - toda hora ele ficava tentando abrir o banco de dados - que já estava aberto, e ainda por cima, na abertura não tratei o erro com try - catch ... dai já viu né, ou seja, bobagem - atras de bobagem - estou iniciando em C# e to gostando muito!!!"
Obrigado a todos.
- Marcado como Resposta Andy-Koala sexta-feira, 13 de maio de 2011 12:28