COMO CANCELAR UMA OPERACAO EM C#

TAKA 10/02/2010 08:45:49
#334056
Olá pessoal! Tudo bem?
Bom como eu havia dito... estou programando não tem muito tempo e estou com um pequeno problema.


private void textBox_cod_cheque_movimentacao_entrada_Leave(object sender, EventArgs e)
{
//Quantidade de caracteres deve ser de 30.
if (textBox_cod_cheque_movimentacao_entrada.Text.Length == 30)
{

//Separa os códigos do cheque. Banco, Agência, N. da conta, N. do cheque... em vários nós.
string sCamposLidos = textBox_cod_cheque_movimentacao_entrada.Text;

//Array com todas as informações
string[] vetorPrincipal = sCamposLidos.Split(new char[] { [ô]-[ô] });

string sBancoAgencia = vetorPrincipal[0].ToString().Trim();

//Separa os códigos que são necessários, cada um em um nó.
string sBanco = sBancoAgencia.Substring(0, 3);
string sAgencia = sBancoAgencia.Substring(3, 4);
string sCompensacao = sBancoAgencia.Substring(8, 3);
string sNrcheque = sBancoAgencia.Substring(11, 6);
string sNrconta = sBancoAgencia.Substring(23, 6);

label_banco_movimentacao_entrada.Text = sBanco;
label_agencia_movimentacao_entrada.Text = sAgencia;
label_compensacao_movimentacao_entrada.Text = sCompensacao;
label_n_cheque_movimentacao_entrada.Text = sNrcheque;
label_n_conta_movimentacao_entrada.Text = sNrconta;

textBox_valor_cheque_movimentacao_entrada.Focus();
}

else if (textBox_cod_cheque_movimentacao_entrada.Text == [Ô][Ô])

{
MessageBox.Show([Ô]Código do cheque incorreto![Ô],
[Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error);
textBox_cod_cheque_movimentacao_entrada.Focus();
}
}

Bom... meu TextBox deve ter 30 caracteres! Caso contrário... ele vai dar código incorreto!
Agora se ele estiver em branco... e eu clicar com o botão Cancelar... ele esta dando código de cheque inválido! Pois ele esta em branco! Agora como eu faço para conseguir clicar no botão cancelar e parar de ficar dando esta mensagem?

Obrigado pessoal!!

Taka
ASHKATCHUP 10/02/2010 08:56:21
#334058
Resposta escolhida
Se o campo tiver 30 caracteres, faz a mágica,
Se não tiver e for vazio, mostra a mensagem.

MAs se ele tiver 25 caracteres?
GLAUCIO 10/02/2010 08:56:26
#334059
Já tentou desativar a property CausesValidation do textbox ?

textBox_cod_cheque_movimentacao_entrada.CausesValidation = false
TAKA 10/02/2010 09:17:42
#334060
ASHKATCHUP

Exatamente... se for 30 ele executa a mágica... se for diferente de 30 ele mostra a mensagem! E se ele tiver 25 caracteres vai entrar no else!
Ele só vai executar o if se tiver 30 caracteres se for diferente... ele entra no else!


GLAUCIO

Não funcionou o Causes Validation... eu tentei e não deu certo! Deu o mesmo problema!



Taka
ASHKATCHUP 10/02/2010 09:21:57
#334061
Cara, não vai entrar no [Ô]else[Ô] pq dentro dele vc tem um if que só mostra a mensagem se for vazio.

Para evitar esse problema ao clicar no cancelar, pq vc n valida o valor [Ô]vazio[Ô] no próximo controle da tela?

Exemplo:

-Controle 1
-Controle 2

Quando o controle 2 recebe foco, vc valida o [Ô]vazio[Ô] do controle 1.
TAKA 10/02/2010 09:52:06
#334065
Pouts ASHKATCHUP!!!!


Este else esta errado... não tem aquele if.... é só o [Ô]else[Ô] mesmo!!!

é que eu estava fazendo um outro teste para ver se daria certo... mas não existe aquele else!!!!

else
{
MessageBox.Show([Ô]Código do cheque incorreto![Ô],
[Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error);
textBox_cod_cheque_movimentacao_entrada.Focus();
}

é desta maneira na verdade!!!!
Eu não tinha percebido que eu coloquei com aquele erro!!!

Foi mal!!!

Taka
ASHKATCHUP 10/02/2010 11:30:32
#334075
Por que você não testa se o campo está vazio?


else if (!textBox_cod_cheque_movimentacao_entrada.Text == [Ô][Ô])

{
MessageBox.Show([Ô]Código do cheque incorreto![Ô],
[Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error);
textBox_cod_cheque_movimentacao_entrada.Focus();
}
TAKA 10/02/2010 13:10:12
#334080
ASHKATCHUP


Deu certo! Mas é de uma outra maneira para falar a verdade!

else if (textBox_cod_cheque_movimentacao_entrada.Text != [Ô] [Ô])

Apenas o local onde deveria estar !

Obrigado mais uma vez!
Tópico encerrado , respostas não são mais permitidas