ERRORPROVIDER

NEI2009 20/12/2009 19:37:13
#330116
Pessoal

Estou com o seguinte problema quando estou utilizando o errorprovider

1) Tem 8 textbox em um form, onde na sequencia dos textbox apenas o 3o. e 4o. não faço validação, e o que esta acontecendo, quando deixo em branco o 1o. textbox funciona sem problema a identificação de erro, quando faço o mesmo processo no 2o. textbox não funciona como no 1o., pois o próximo textbox seria o 3o., agora quando passo do 4o. textbox para o 5o. textbox, é que aparece a validação de erro do 2o. textbox.
Assim percebei que quando deixo um textbox que tem validação para um proximo textbox que não tem validação ela não aparece o icone do errorprovider, agora se faço a passagem de um textbox que tem validação para outro que tem validação funciona normalmente, ele aparece a mensagem do errorprovider.

If sender.Text.Trim.Length = 0 Then
ErrorProvider1.SetError(sender, [Ô]Favor digitar o conteudo do campo[Ô])
Else
ErrorProvider1.SetError(sender, [Ô][Ô])
End If

Utilizei o codigo acima nos textbox que tem validação (Validating), até fiz o processo de forma individual justamente para identificar o erro.
JWCELYO 20/12/2009 20:40:57
#330118
Resposta escolhida
entendi mais ou menos mais na duvida
utilize tambem o evento Validated dentro desse evento basta colocar
 ErrorProvider1.SetError(sender, [Ô][Ô])


exemplo
Private Sub TextBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If Not (TextBox1.Text Like [Ô]########[Ô]) Then
[ô] O cep é inválido
[ô] Cancela o evento
e.Cancel = True

[ô] seleciona o texto inválido
TextBox1.Select(0, TextBox1.Text.Length)

[ô] Define a mensagem de erro que o controle ErrorProvider deve exibir.
ErrorProvider1.SetError(TextBox1, [Ô]Código de Cep Inválido[Ô])
End If
End Sub


Private Sub TextBox1_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Validated
ErrorProvider1.SetError(TextBox1, [Ô][Ô])

End Sub
NEI2009 20/12/2009 21:39:03
#330119
JWCELYO

Obrigado pela atenção, mais o meu problema esta relacionado a um problema +/- assim

Passo 0
textbox com errorprovider
textbox1, textbox2, textbox5, textbox6, textbox7, textbox8.

textbox sem errorprovider
textbox3, textbox4

Passo 1
Rodo o programa e vou dando tab em todos os campos deixando em branco, justamente para simular o errorprovider
textbox1 é mostrado o icone do errorprovider sem problema algum
textbox2 não é mostrado o icone devido o proximo campo ser o textbox3 onde não tem o errorprovider, agora se ao deixar o textbox2 em branco e clico no textbox5 que tem o errorprovider, ele mostra icone no textbox2.

Espero que com a explicação assim tenha ficado mais claro a minha duvida e problema.


JWCELYO 20/12/2009 21:59:58
#330120
veja com migo não aconteceu isso veja exemplo que acabei de fazer baseado na sua explicação
NEI2009 20/12/2009 22:30:09
#330122

Ancelmo

Desde já quero agradecer a sua atenção e ajuda, mais utilizando o seu exemplo, faça esta alteração e veja o resultado, conforme tinha mencionado anteriormente e veja o problema :

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TextBox3.CausesValidation = False
TextBox4.CausesValidation = False
End Sub
JWCELYO 20/12/2009 22:40:47
#330123
sim realmente deu esse errinho mencionado por você.
mas porque você usaria o causesValidation?
Tópico encerrado , respostas não são mais permitidas