Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2010, 14:54
Avatar de CarmenRocio
CarmenRocio
 
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 12 años, 5 meses
Puntos: 8
De acuerdo Permitir solo números con 2 decimales y no letras en el datagriview en vb.net

Hola a todos como están necesito ingresar números con 2 decimales en mi datagridview para luego grabar bueno estuve buscando en la web y hay un código que te permite hacer algo así por ejemplo en este código que cambie tu puedes ingresar números del 1,2,3,4,5,6,7,8,9,0 y además un solo “.” O coma”,” si es que lo cambias pero el problema de este código es que después del punto ingresas varios decimales por ejemplo 12.33389 y quiero solo ingresar 2 decimales por favor me pueden ayudar con este problemita que tengo y si hay otra forma mejor le agradecería mucho.
Gracias.

Código:
Private Sub dgvUit_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvUit.EditingControlShowing
        If e.CellStyle.Format = "N2" Then
            AddHandler e.Control.KeyPress, AddressOf validar_Keypress
End If

Private Sub validar_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        'Obtener indice de la columna 
        Dim columna As Integer = dgvUit.CurrentCell.ColumnIndex
        ' Verificar columna actual 
        If columna = 2 Then
            Dim caracter As Char = e.KeyChar
            ' referencia a la celda 
            Dim txt As TextBox = CType(sender, TextBox)
            ' Comprobar si es un número con isNumber, si es el backspace, si el caracter 
            ' es el separador decimal, y que no contiene ya el separador 
            If (Char.IsNumber(caracter)) Or (caracter = ChrW(Keys.Back)) Or (caracter = ".") And (txt.Text.Contains(".") = False) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End If
End Sub