Foros del Web » Programación para mayores de 30 ;) » .NET »

Solo numeros en DataGridView VB.NET

Estas en el tema de Solo numeros en DataGridView VB.NET en el foro de .NET en Foros del Web. Logre solucionar el problema de solo numeros en el DataGridView con la ayuda de otros foros y mi incansable busqueda. Ejemplo Protected Overrides Function ProcessDialogKey(ByVal ...
  #1 (permalink)  
Antiguo 03/01/2007, 10:51
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1
Antigüedad: 17 años, 5 meses
Puntos: 0
Solo numeros en DataGridView VB.NET

Logre solucionar el problema de solo numeros en el DataGridView con la ayuda de otros foros y mi incansable busqueda.

Ejemplo

Protected Overrides Function ProcessDialogKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean
Dim columna As Integer = 0
Dim valido As Boolean = False
'''' este select es porque tengo dos grid en el mismo form
Select Case True
Case griEntarticulos.ContainsFocus = True
columna = griEntarticulos.CurrentCell.ColumnIndex
Case griSalarticulos.ContainsFocus = True
columna = griSalarticulos.CurrentCell.ColumnIndex
End Select
'''' este if es porque en la columna con index 2 (0,1,2) es en la que ingreso
'''' cantidades, la 0 es alfanumerica y la 1 es readonly.
'''' la verdad me parece mucho codigo pero me soluciono el problema
If columna = 2 Then
Select Case keyData
Case Keys.NumPad0
valido = True
Case Keys.NumPad1
valido = True
Case Keys.NumPad2
valido = True
Case Keys.NumPad3
valido = True
Case Keys.NumPad4
valido = True
Case Keys.NumPad5
valido = True
Case Keys.NumPad6
valido = True
Case Keys.NumPad7
valido = True
Case Keys.NumPad8
valido = True
Case Keys.NumPad9
valido = True
Case Keys.D0
valido = True
Case Keys.D1
valido = True
Case Keys.D2
valido = True
Case Keys.D3
valido = True
Case Keys.D4
valido = True
Case Keys.D5
valido = True
Case Keys.D6
valido = True
Case Keys.D7
valido = True
Case Keys.D8
valido = True
Case Keys.D9
valido = True
Case Keys.Delete
valido = True
Case Keys.Back
valido = True
End Select
If valido = True Then
Return MyBase.ProcessDialogKey(keyData) 'devolver KeyData
Else
Return True 'Marcar como procesado Y NO DEVOLVER NADITA
End If
Else 'en caso contrario
'''' en caso de que este fuera de la columna o del grid debo dejar pasar
'''' el valor digitado para los demas objetos, porque esta funcion se aplica
'''' a todo el formulario.
Return MyBase.ProcessDialogKey(keyData)
End If
End Function

Espero les funcione. Chao
  #2 (permalink)  
Antiguo 15/06/2010, 11:11
 
Fecha de Ingreso: septiembre-2003
Ubicación: Tiuana BC. mex.
Mensajes: 14
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Solo numeros en DataGridView VB.NET

se que este tema ya es viejo pero al pasar por aqui y ver tanto codigo
y dado que otros programadores pueden buscar por este tema
creo que seria mejor reemplazar el SELECT CASE con el siguiente IF

If Char.IsDigit(e.KeyChar) = False And Char.IsControl(e.KeyChar) = False And Char.IsPunctuation(e.KeyChar) = False Then
e.Handled = True
Else
If Char.IsPunctuation(e.KeyChar) Then
If sender.Text.IndexOf(".") > 0 Then
e.Handled = True
Else
e.Handled = False
End If
End If
End If

saludos
  #3 (permalink)  
Antiguo 15/06/2010, 11:26
 
Fecha de Ingreso: septiembre-2003
Ubicación: Tiuana BC. mex.
Mensajes: 14
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Solo numeros en DataGridView VB.NET

o de esta otra manera
Select Case keyData
Case 96 To 105, 48 To 57, 46, 8
valido = True
End Select

Mas sencillo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.