Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2009, 02:16
Avatar de se7en
se7en
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 36
Antigüedad: 15 años, 6 meses
Puntos: 6
Información Solo letras/números en un textbox (por ejemplo)

Bueno, dejo aquí como hacerlo, pues todos los que tienen un sistema de bases de datos que apuntan números de telefono, o que se yo, cualquier cosa, que los usuarios no escriban su nombre con número en la aplicación, etc.
La idea del sistema no es mandar un mensaje de error, sino que al pulsar la tecla en el textbox no ocurra nada.

-Creas un evento KeyPress en el textbox que queramos aplicar el efecto. (También puedes hacerlo en un richtextbox, etc)

-Y coloca dentro de este evento, segun lo que quieras:
Lo explico:

if
Código c#:
Ver original
  1. (Char.IsLetter(e.KeyChar)) //Al pulsar una letra
  2.             {
  3.                 e.Handled = false; //Se acepta (todo OK)
  4.             }
  5.             else if (Char.IsControl(e.KeyChar)) //Al pulsar teclas como Borrar y eso.
  6.             {
  7.                 e.Handled = false; //Se acepta (todo OK)
  8.             }
  9.             else //Para todo lo demas
  10.             {
  11.                 e.Handled = true; //No se acepta (si pulsas cualquier otra cosa pues no se envia)
  12.             }
Este sería un ejemplo de solo letras.
Para un "solo números" el
Código c#:
Ver original
  1. if (Char.IsLetter(e.KeyChar)) //Al pulsar una letra
  2.             {
  3.                 e.Handled = false; //Se acepta (todo OK)
  4.             }
Sería remplazado por:
Código c#:
Ver original
  1. if (Char.IsNumber(e.KeyChar))
  2.            {
  3.                e.Handled = false;
  4.            }