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

Escribir solo números

Estas en el tema de Escribir solo números en el foro de .NET en Foros del Web. Buenas, Para una aplicacion de DNI necesito q en un txtbox solo me deje escribir numeros(program en visual c#), por lo q yo hago: private ...
  #1 (permalink)  
Antiguo 30/09/2005, 04:24
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Escribir solo números

Buenas,

Para una aplicacion de DNI necesito q en un txtbox solo me deje escribir numeros(program en visual c#), por lo q yo hago:

private void txtDni_KeyPress(object sender,KeyPressEventArgs e)
{
if((e.KeyChar<(char)48) || (e.KeyChar>(char)57)) // para q solo sea numérico
{
txtDni.Text="";
}//if
}//keypress

Pues bien si yo pongo por ejemplo 'pa' lo q hace es escribirme la 'p' y luego me la 'a' me la pone en el sitio de la 'p', como podria hacer q no me dejase escribir letras?¿

GRACIAS
  #2 (permalink)  
Antiguo 30/09/2005, 06:59
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 19 años, 5 meses
Puntos: 0
Checa este link:
http://www.forosdelweb.com/showthrea...8&page=4&pp=20

Está en la página 4 de las faq's, te puede servir de ayuda para lo que deseas.

Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #3 (permalink)  
Antiguo 30/09/2005, 08:17
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias Rony, pero no veo como puede funcionar en visual c# ya q no veo los métodos utilizados en el ejemplo
  #4 (permalink)  
Antiguo 03/10/2005, 18:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Por lo visto lo necesitas para windows forms...

Yo lo haría así usando mejor el evento (KeyUp)

Cita:
private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
int iKey = e.KeyValue;
if((iKey < 48) || (iKey > 57)) // para q solo sea numérico
{
string sCad = txtDni.Text; //guardo el texto y cadena original
int iLen = txtDni.Text.Length - 1; //obtengo el tamaño del texto actual
if (iLen!=0) {
txtDni.Text = sCad.Substring(0,iLen); //quito el último caracter ingresado
txtDni.SelectionStart = iLen; //posiciono el cursor
txtDni.SelectionLength = iLen;

}



}
Espero te sirva...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 03/10/2005, 19:34
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Yo lo haría así usando el evento KeyPress:
Código:
private void textBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if ( ! ( char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) ) )
        e.Handled = true;
}
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #6 (permalink)  
Antiguo 03/10/2005, 20:38
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Yo lo haría así usando el evento KeyPress:
Much better, more clean
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 04/10/2005, 00:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 4 meses
Puntos: 0
Buenas,

Perdonad por contestar pero el fin de semana pasado estuve sin ordenador, muchas gracias por vuestra ayuda, me tengo q poner mas en esto del visual c#

Hasta la proxima y gracias de nuevo
  #8 (permalink)  
Antiguo 09/10/2005, 12:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
he encontrado esto k creo k irá mucho mejor y te interesará mas

http://www.elguille.info/NET/dotnet/...ormatoErik.htm
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 15:14.