Usuário com melhor resposta
Erro Campo Obrigatório

Pergunta
-
Olá gente, estou com uma dúvida em um erro que está acontecendo no meu Form com campos obrigatórios.
private void button3_Click(object sender, EventArgs e) { if (cOD_ALUNOTextBox.Text.Equals("")) { MessageBox.Show("Campo Codigo Aluno é obrigatório"); cOD_ALUNOTextBox.Select(); } else if (nOMETextBox.Text.Equals("")) { MessageBox.Show("Campo Nome é obrigatório"); nOMETextBox.Select(); } else if (sOBRENOMETextBox.Text.Equals("")) { MessageBox.Show("Campo Sobrenome é obrigatório"); sOBRENOMETextBox.Select(); } else if (cOD_TURMAComboBox.Text.Equals("")) { MessageBox.Show("Campo Turma é obrigatório"); cOD_TURMAComboBox.Select(); } else if (eNDERECOTextBox.Text.Equals("")) { MessageBox.Show("Campo Endereço é obrigatório"); eNDERECOTextBox.Select(); } else if (bAIRROTextBox.Text.Equals("")) { MessageBox.Show("Campo Bairro é obrigatório"); bAIRROTextBox.Select(); } else if (cEPMaskedTextBox.Text.Equals("")) { MessageBox.Show("Campo CEP é obrigatório"); cEPMaskedTextBox.Select(); } else if (uFComboBox.Text.Equals("")) { MessageBox.Show("Campo Unidade Federativa é obrigatório"); uFComboBox.Select(); } else if (cOD_CIDADEComboBox.Text.Equals("")) { MessageBox.Show("Campo Cidade é obrigatório"); cOD_CIDADEComboBox.Select(); } else if (rGTextBox.Text.Equals("")) { MessageBox.Show("Campo RG é obrigatório"); rGTextBox.Select(); } else if (fONEMaskedTextBox.Text.Equals("")) { MessageBox.Show("Campo Fone é obrigatório"); fONEMaskedTextBox.Select(); } else { this.Validate(); this.alunoBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.library_projectDataSet); MessageBox.Show("Salvo com sucesso."); } }
Os códigos de validação estão todos corretos, mas mesmo assim, ele salva faltando alguns obrigatórios como o CPF e o FONE.
Também tem outra coisa ocorrendo, a ordem de aparecer as mensagens de erro de código estão fora de ordem( quando falta ENDERECO aparece, por exemplo, "CAMPO BAIRRO É OBRIGATÓRIO") e eu ja usei o Tab Order.
Alguém consegue resolver meus problemas? =p
Respostas
-
Boa tarde,
o problema é que você esta usando MaskedTextBox então sempre esses campos terão um valor, que é a máscara, por exemplo o CPF vazio sempre terá o valor " . . - ":
Faça seu else if desses campos com máscara assim:
else if (!fONEMaskedTextBox.MaskCompleted)
Pedro Henrique B. Fernandes
MCTS - .NET Framework 4, Data Access
MCTS - .NET Framework 4, Web Applications
Site: pedrofernandes.net- Editado Pedro Henrique Fernandes segunda-feira, 21 de novembro de 2011 20:54
- Sugerido como Resposta Paulo César Viana segunda-feira, 21 de novembro de 2011 21:00
- Marcado como Resposta shadowzen190 terça-feira, 22 de novembro de 2011 22:19
Todas as Respostas
-
Este tanto de else if deve estar deixando passar alguma coisa.
Use IsNullOrEmpty.
if (String.IsNullOrEmpty(txtTelefone.Text)) { MessageBox.Show("Preencha o campo telefone..."); }
--
Marque as respostas e ajude a melhorar a busca do fórum. -
Desculpe amigo, mas a mesma acontece.
Vou falar o caminho que ele faz.
COD ALUNO > NOME > SOBRENOME > TURMA > ENDEREÇO > BAIRRO > CIDADE > RG > SALVAR COM SUCESSO.
Ele salva mesmo faltando CEP, FONE e CPF
OBS.: Ele ta programado quando apertar TAB, ir de cima para baixo, da esquerda para a direita.
- Editado shadowzen190 segunda-feira, 21 de novembro de 2011 20:25
-
Acredito que o problema seja teus else if. Eu faria algo assim:
private void btnEnviar_Click(object sender, EventArgs e) { bool camposPreenchidos = ValidarCampos(); if (!camposPreenchidos) { //cadastra } else { MessageBox.Show("Todos os campos são obrigatórios"); } } private bool ValidarCampos() { bool campoVazio = false; if (String.IsNullOrEmpty(txt1.Text)) { txt1.Select(); campoVazio = true; } if (String.IsNullOrEmpty(txt2.Text)) { txt2.Select(); campoVazio = true; } if (String.IsNullOrEmpty(txt3.Text)) { txt3.Select(); campoVazio = true; } if (String.IsNullOrEmpty(txt4.Text)) { txt4.Select(); campoVazio = true; } return campoVazio; }
--
Marque as respostas e ajude a melhorar a busca do fórum. -
Boa tarde,
o problema é que você esta usando MaskedTextBox então sempre esses campos terão um valor, que é a máscara, por exemplo o CPF vazio sempre terá o valor " . . - ":
Faça seu else if desses campos com máscara assim:
else if (!fONEMaskedTextBox.MaskCompleted)
Pedro Henrique B. Fernandes
MCTS - .NET Framework 4, Data Access
MCTS - .NET Framework 4, Web Applications
Site: pedrofernandes.net- Editado Pedro Henrique Fernandes segunda-feira, 21 de novembro de 2011 20:54
- Sugerido como Resposta Paulo César Viana segunda-feira, 21 de novembro de 2011 21:00
- Marcado como Resposta shadowzen190 terça-feira, 22 de novembro de 2011 22:19
-
-
Faz assim cara:
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text =="" || textBox2.Text =="" || radioButton1.Checked==false)
{
MessageBox.Show("Nenhum campo pode ficar vazio");
}
else
{
MessageBox.Show("Sucesso");
}
}
One word frees us of all the weight and pain of life: that word is love. -
Como voce quer setar focus, poderias criar um metodo que faz isto:
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text =="" || textBox2.Text =="" || radioButton1.Checked==false)
{
MessageBox.Show("Nenhum campo pode ficar vazio");
focus_aqui(bAIRROTextBox, rGText);
}
else
{
MessageBox.Show("Sucesso");
}
}
private void focus_aqui(TextBox _focus,TextBox _texto) //aqui voce seta o focus.
{
if (_focus.Text.Length == 0)
{
_focus.Select();
}
else
if (_texto.Text.Length == 0)
{
_texto.Select();
}
One word frees us of all the weight and pain of life: that word is love.