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.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles 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)
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 2: Creamos el event keypress del Textbox.
Private Sub oTexbox _Keypress(ByVal sender As Object, ByVal 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.
' 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)
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
en que momento validad si se presiono enter
ResponderEliminar