• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

claudinei

ErrorProvider

5 mensagens neste tópico

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se capturaste o evento validating para cada textbox, experimenta então :

If TextBox1.Text.Trim.Length = 0 Then

  ErrorProvider1.SetError(TextBox1, "Favor digitar o conteudo do campo")

Else

  ErrorProvider1.SetError(TextBox1, "")

End If

E adapta o nome de cada textbox ao evento a que está associado. Faz isso, e vê se continuas com o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Renafi

  Obrigado pelo dica, mais a intensão seria criar algo generico para facilitar a programação, mais fiz o teste como você comentou mais também não deu certo, será que estou fazendo algo de errado ou isto poderia ser um bug do VB.net ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se continuas com o mesmo problema, isso é muito estranho. coloca aqui o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que queres fazer é simples:

Public Class Form1
    Private Sub TextBoxes_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Validated, TextBox2.Validated, TextBox3.Validated, TextBox6.Validated, TextBox7.Validated, TextBox8.Validated
        ErrorProvider1.SetError(sender, "")
    End Sub

    Private Sub TextBoxes_Validating(ByVal sender As TextBox, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating, TextBox2.Validating, TextBox3.Validating, TextBox6.Validating, TextBox7.Validating, TextBox8.Validating
        If sender.TextLength = 0 Then
            e.Cancel = True
            ErrorProvider1.SetError(sender, "Erro")
        End If
    End Sub
End Class

Aqui apenas verifiquei se o textlength é igual a zero, mas podes fazer outro tipo de verificação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora