none
Validar Solo numeros la celda de un DataGridView

    Pregunta

  • Hola, la validacion de un TextBox es muy conocida y utilizada ya sea para solo números o solo letras, pero me interesa saber como puedo hacer lo mismo en la celda de un DataGridView? ya probé el evento KeyPress este código y no me funciono:

       If Char.IsNumber(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsSeparator(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If


    Renzo Rivera

    miércoles, 26 de abril de 2017 8:13

Respuestas

  • Saludos:

    Uso esta pequeña function para controlar el ingreso de numeros:

    Function Fg_OnlyNumbers(ByVal StrDigit As String, ByVal StrText As String) As Boolean
            Dim Dt_Integer As Integer = CInt(Asc(StrDigit))
            Dim flag As Boolean
            If Dt_Integer = 8 Then
                flag = False
            Else
                If InStr("1234567890.", StrDigit) = 0 Then
                    flag = True
                ElseIf IsNumeric(StrText) = True Then
                    flag = False
                ElseIf IsNumeric(StrText) = False Then
                    flag = True
                End If
            End If
            Return flag
        End Function

    Lo usas en el evento KeyPress del DGV, asi:

    Private Sub DataGridView1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DataGridView1.KeyPress
         e.Handled = Fg_OnlyNumbers(e.KeyChar, Tx_ZipCode.Text & CChar(e.KeyChar))
    End Sub

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    • Marcado como respuesta Renzo19 jueves, 27 de abril de 2017 1:16
    miércoles, 26 de abril de 2017 21:38

Todas las respuestas

  • Saludos:

    Uso esta pequeña function para controlar el ingreso de numeros:

    Function Fg_OnlyNumbers(ByVal StrDigit As String, ByVal StrText As String) As Boolean
            Dim Dt_Integer As Integer = CInt(Asc(StrDigit))
            Dim flag As Boolean
            If Dt_Integer = 8 Then
                flag = False
            Else
                If InStr("1234567890.", StrDigit) = 0 Then
                    flag = True
                ElseIf IsNumeric(StrText) = True Then
                    flag = False
                ElseIf IsNumeric(StrText) = False Then
                    flag = True
                End If
            End If
            Return flag
        End Function

    Lo usas en el evento KeyPress del DGV, asi:

    Private Sub DataGridView1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles DataGridView1.KeyPress
         e.Handled = Fg_OnlyNumbers(e.KeyChar, Tx_ZipCode.Text & CChar(e.KeyChar))
    End Sub

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    • Marcado como respuesta Renzo19 jueves, 27 de abril de 2017 1:16
    miércoles, 26 de abril de 2017 21:38
  •  
    Gracias Jose Luis Vargas !

    Renzo Rivera

    jueves, 27 de abril de 2017 1:15