La Web del Programador: Comunidad de Programadores
 
    Pregunta:  51001 - MASCARA DE ENTRADA EN UN TEXTBOX
Autor:  Otoniel Saravia
Hola a todos como puedo hacer en una aplicacion windows forms, que un textbox solo acepte entradas por ejemplo con el formato siguiente:
AB0041012006. Los dos primeros caracteres tienen que ser dos letras.
Estoy utilizando el visual basic .net 2003.

Si alguien sabe como hacerlo, me podria dar una idea. Gracias.

  Respuesta:  Hugo Aristizábal
Que tal.

Básicamente hay dos formas, una un poco rústica, verificando el código ASCII de cada caracter presionado, y otra mucho más "elegante", utilizando expresiones regulares. Me voy a enfocar en la segunda, porque evidentemente va más acorde con el código bien escrito que todos quisiéramos tener. La siguiente función valida si una cadena de texto se ajusta a una expresión regular (se debe utilizar el namespace System.Text.RegularExpressions):

private bool ValidarCampo(string sExpresionRegular, string sValor)
{
// se inicializa la expresión regular
Regex reg = new Regex(sExpresionRegular);

// se valida la expresión contra la información de entradas
return reg.Match(sValor).Success;
}

La expresión regular es una cadena que determina las condiciones que se deben cumplir para el formato de cualquier elemento que se represente mediante texto. Este es un tema que aunque no es complejo, vale la pena mirar de manera más detallada. Por ejemplo, para admitir sólo valores alfanuméricos y espacios, se podría utilizar la siguiente expresión regular:

"^[a-zA-ZñÑáéíóúÁÉÍÓÚ0-9 ]+$"

Y para admitir sólo valores numéricos:

"^[0-9]+$"

Una un poco más compleja, que represente una ruta de red (las rutas de red empiezan con \\, como \\equipo01\documentos)

"^\\{2}([a-z]{1,2})$"

Hay una herramienta gratuita para generar y evaluar expresiones regulares, que se llama Expresso, y la podés descargar de http://www.ultrapico.com/Expresso.htm.

Si te queda alguna duda, con gusto la atenderé.