none
Como verificar si un error provider esta activado

    Pregunta

  • tengo un metodo que me valida y me pone el error provider en cada uno de los textbox que tenga en blanco y eso me funciona bien pero quiero que cuando le doy al boton grabar si el encuentra que hay algun control error provider active no me permita grabar osea que retorne (Return) saber si hay alguna propiedad del control error provider que sirve para esos fines o cualquier otra coas
    miércoles, 14 de diciembre de 2016 19:52

Respuestas

  • Hola Efrain Diaz,

    A menos que me equivoque, no existe una propiedad y/o función que muestre o mencione la cantidad de errores. Podrías implementar un método para validar la validez de los datos, y mediante un contador ir sumando en caso presente errores.

    Algo como :

    Private Function formHasError() As Boolean
    
        Dim errors As Integer = 0
    
        ErrorProvider1.SetError(TextBox1, String.Empty)
        ErrorProvider1.SetError(TextBox2, String.Empty)
    
        If TextBox1.Text.Trim = String.Empty Then
            ErrorProvider1.SetError(TextBox1, "Complete el campo1")
            errors += 1
        End If
    
        If TextBox2.Text.Trim = String.Empty Then
            ErrorProvider1.SetError(TextBox2, "Complete el campo2")
            errors += 1
        End If
    
        Return errors > 0
    End Function

    Y cuando presione el botón, solo llamarías a la función.

    Private Sub btnGrabar_Click(sender As Object, e As EventArgs) Handles btnGrabar.Click
    
        If formHasError() Then  'Si es true
            MessageBox.Show("Debe corregir los errores ...")
            Return
        End If
    
        'Es false, seguimos...
        MessageBox.Show("Grabando...")
    
    End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Efrain Diaz miércoles, 14 de diciembre de 2016 20:35
    miércoles, 14 de diciembre de 2016 20:16

Todas las respuestas

  • Tengo un formulario con varios textbox, varios checkbox y varios radio button, necesito crear un metodo donde pueda utilizer el control error provider para que si por ejemplo los textbox estan en blanco cuando le de al boton grabar me ponga un error provider que me indique el error que quiera, pero asi mismo en los checkbox y en los radiobutton con sus propiedades check, no lo quiero hacer uno por uno
    martes, 13 de diciembre de 2016 18:57
  • Puedes usar errorProvider1.GetError(textBox1). Esto te devuelve el texto del mensaje de error, que estará vacío si el ErrorProvider1 no está activado sobre el textbox1.
    miércoles, 14 de diciembre de 2016 19:55
  • pero no existe un metodo o propiedad del control error provider que diga si hay alguno active en el formulario como tal
    miércoles, 14 de diciembre de 2016 20:00
  • Hola Efrain Diaz,

    A menos que me equivoque, no existe una propiedad y/o función que muestre o mencione la cantidad de errores. Podrías implementar un método para validar la validez de los datos, y mediante un contador ir sumando en caso presente errores.

    Algo como :

    Private Function formHasError() As Boolean
    
        Dim errors As Integer = 0
    
        ErrorProvider1.SetError(TextBox1, String.Empty)
        ErrorProvider1.SetError(TextBox2, String.Empty)
    
        If TextBox1.Text.Trim = String.Empty Then
            ErrorProvider1.SetError(TextBox1, "Complete el campo1")
            errors += 1
        End If
    
        If TextBox2.Text.Trim = String.Empty Then
            ErrorProvider1.SetError(TextBox2, "Complete el campo2")
            errors += 1
        End If
    
        Return errors > 0
    End Function

    Y cuando presione el botón, solo llamarías a la función.

    Private Sub btnGrabar_Click(sender As Object, e As EventArgs) Handles btnGrabar.Click
    
        If formHasError() Then  'Si es true
            MessageBox.Show("Debe corregir los errores ...")
            Return
        End If
    
        'Es false, seguimos...
        MessageBox.Show("Grabando...")
    
    End Sub

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Efrain Diaz miércoles, 14 de diciembre de 2016 20:35
    miércoles, 14 de diciembre de 2016 20:16
  • Hola:
    En un Form con 1 Button, 1 ErrorProvider y 2 TextBox, copia y pega el siguiente ejemplo

    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.AutoValidate = Windows.Forms.AutoValidate.EnableAllowFocusChange
        End Sub
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If Me.ValidateChildren = False Then
                MessageBox.Show("Datos incompletos", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Datos completos", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End Sub
        Private Sub TextBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            If Me.TextBox1.Text.Length = 0 Then
                e.Cancel = True
                Me.ErrorProvider1.SetError(Me.TextBox1, "Introduzca el Texto 1")
            Else
                Me.ErrorProvider1.SetError(Me.TextBox1, Nothing)
            End If
        End Sub

        Private Sub TextBox2_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating
            If Me.TextBox2.Text.Length = 0 Then
                e.Cancel = True
                Me.ErrorProvider1.SetError(Me.TextBox2, "Introduzca el Texto 2")
            Else
                Me.ErrorProvider1.SetError(Me.TextBox2, Nothing)
            End If
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    jueves, 15 de diciembre de 2016 9:21