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

Permitir numeros, bloquear letras

Estas en el tema de Permitir numeros, bloquear letras en el foro de .NET en Foros del Web. Buenas tardes, alguien me podria indicar como puedo hacer para que en una columna de mi datagridview solo pueda meter numeros y no letras?? Agradeceria ...
  #1 (permalink)  
Antiguo 18/02/2008, 14:56
Avatar de VelascoCalderon  
Fecha de Ingreso: agosto-2007
Mensajes: 80
Antigüedad: 16 años, 8 meses
Puntos: 0
Exclamación Permitir numeros, bloquear letras

Buenas tardes, alguien me podria indicar como puedo hacer para que en una columna de mi datagridview solo pueda meter numeros y no letras?? Agradeceria la ayuda porque me estoy volviendo loco ya que me es indispensable que en dos culumnas de mi datagrid solo puedan meter numero ya que sino las formulas matematicas me fallan. Estoy usando vb.net 2005.

Un saludo y muchas gracias de antemano!!!
  #2 (permalink)  
Antiguo 18/02/2008, 16:29
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Permitir numeros, bloquear letras

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
((DataGridViewTextBoxEditingControl)sender).KeyPre ss += new KeyPressEventHandler(Form1_KeyPress);
}

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar... comparasiones contra numeros pero en falso o verdadero depende tu logica)
e.Handled=true;
}

saludos
peter
  #3 (permalink)  
Antiguo 18/02/2008, 16:32
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Permitir numeros, bloquear letras

En gral es lo mismo en vb net busca ambos metodos en tu dgv y listo lo demas es talachar con tus condiciones de validación y si quieres q en alguna columna en especifico se habilite cierto manejador de eventos diferente al de solo letras o solo numeros (q tu definas)

Saludos
peter
  #4 (permalink)  
Antiguo 19/02/2008, 06:19
Avatar de VelascoCalderon  
Fecha de Ingreso: agosto-2007
Mensajes: 80
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Permitir numeros, bloquear letras

Ya encontre la solucion, os la muestro a acontinuacion por si algun dia os hace falta. Hacen falta lo siguiente:

Private Sub dataGridView1_EditingControlShowing( _
ByVal sender As Object, _
ByVal e As DataGridViewEditingControlShowingEventArgs) _
Handles DataGridView1.EditingControlShowing

'Referencia a la celda
Dim validar As TextBox = CType(e.Control, TextBox)

'Agregar el controlador de eventos para el KeyPress
AddHandler validar.KeyPress, AddressOf validar_Keypress

End Sub


' Evento Keypress
Private Sub validar_Keypress( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs)

'Obtener indice de la columna
Dim columna As Integer = DataGridView1.CurrentCell.ColumnIndex

' Verificar columna actual
If columna = 2 Or columna = 3 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

Saludos!!
  #5 (permalink)  
Antiguo 19/02/2008, 09:49
 
Fecha de Ingreso: enero-2008
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Permitir numeros, bloquear letras

Tambien puedes realizar este tipo de validaciones mediante JavaScript, que no necesitan de enviar la petición al servidor. Al input que tengas le añades la siguiente función y listos.

onkeypress="return soloNumeros(event);"

function soloNumeros(evt){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
var key = evt.keyCode ? evt.keyCode : evt.which ;

return (key <= 40 || (key >= 48 && key <= 57));
}
  #6 (permalink)  
Antiguo 22/02/2008, 12:12
Avatar de huenupan  
Fecha de Ingreso: noviembre-2007
Ubicación: Temuco - Chile
Mensajes: 48
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Permitir numeros, bloquear letras

y si alguien supiera como utilizar expresiones regulares para este caso, se lo agradecería, necesito validar el ingreso de numeros enteros mas 2 decimales
  #7 (permalink)  
Antiguo 03/03/2010, 10:44
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Permitir numeros, bloquear letras

me pueden ayudar porfavor,,como puedo validar solo numeros en excel,,,de urgen plis
  #8 (permalink)  
Antiguo 14/06/2010, 15:00
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: Re: Permitir numeros, bloquear letras

Hola el tuyo esta bien pero esta en javascript, no tienes uno como en vb.net como del anterior compañero algo mas sencillo como por ejemplo cuando utilizas un textbox y quieres que solo ingreses numero mas no letras. por ejemplo:


Private Sub txtRuc_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtRuc.KeyPress
If InStr("0123456789" & Chr(8), e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
  #9 (permalink)  
Antiguo 14/06/2010, 15:17
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: Re: Permitir numeros, bloquear letras

hola Velasco como estas. estuve analizando el codigo que tienes y en verdad no aceptan letras , ok ,pero tengo un problema yo necesito para mi proyecto ingresar importes por ejemplo :

12.00
52.63
56.09
2,523.56

algo asi necesito ingresar,

pero en tu codigo por ejemplo te permite ingresar numeros:

2656566,232323

No respeta valores despues del coma no sabras por seacaso como puedo yo restringir eso que sea (10,2) con dos decimales por favor si puede me ayudas.
gracias
  #10 (permalink)  
Antiguo 14/06/2010, 15:48
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 13 años, 10 meses
Puntos: 8
Respuesta: Permitir numeros, bloquear letras en un datagridview

alguien sabra como puedo ingresar 12.56 y depues de lo dos decimales ya no pueda ingresar mas numero

Última edición por CarmenRocio; 14/06/2010 a las 15:58
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 21:38.