viernes, 8 de marzo de 2013

Validar textbox de un datagridview

En este ejemplo nos permitirá validar los Textbox en un datagridview. de esta forma podremos controlar que tipo de datos acepte.

  • Números
  • Punto decimal
  • Suprimir
  • Retroceso


Código fuente


Paso 1: Validamos el evento EditingControlShowing del gridview

Private Sub DataGridView1_EditingControlShowing(ByVal sender As System.ObjectByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgsHandles DataGridView1.EditingControlShowing
 Try
        If (DataGridView1.CurrentCell.ColumnIndex = 2) Then
            'Hacemos referencia a la celda del textbox
            Dim oTexbox As TextBox = CType(e.Control, TextBox)
            ' agregar el eventos para el KeyPress al control oTextbox
            AddHandler oTexbox .KeyPress, AddressOf oTexbox _Keypress
        End If
 Catch ex As Exception
  MessageBox.Show(ex.Message, "vb.net", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
 End Try
End Sub

Paso 2: Creamos el event keypress del Textbox.

Private Sub oTexbox _Keypress(ByVal sender As ObjectByVal e As System.Windows.Forms.KeyPressEventArgs)
Try
        ' obtener indice de la columna 
        Dim columna As Integer = DataGridView1.CurrentCell.ColumnIndex
        ' comprobar si la celda en edición corresponde
        If columna = 2 Then
       'Comprobamos que solo introduzca
       ' char.IsNumber = Solo números
       '46 = Punto decimal. 
       '127 = Suprimir.
       '8 = Retroceso.
If (Char.IsNumber(e.KeyChar) Or e.KeyChar = Microsoft.VisualBasic.ChrW(46) _
                            Or e.KeyChar = Microsoft.VisualBasic.ChrW(127) _
                            Or e.KeyChar = Microsoft.VisualBasic.ChrW(8)) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End If
        Catch ex As Exception
  MessageBox.Show(ex.Message, "vb.net", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
End Sub

1 comentario: