2010-02-14 12 views
6

¿Cómo puedo poner la máscara en el cuadro de texto de ganar para que solo permita números? y cómo funciona durante otros datos de máscaras, etc. postal teléfonoWin Forms Máscaras de cuadro de texto

Estoy utilizando Visual Studio 2008 C#

Gracias.

Respuesta

3

¿Quieres evitar de entrada que no está permitida o validar la entrada antes de que sea posible proceder?

El primero podría confundir a los usuarios cuando presionen las teclas, pero no pasa nada. Por lo general, es mejor mostrar sus teclas, pero muestran una advertencia de que la entrada no es válida actualmente. Probablemente también sea bastante complicado configurar para enmascarar una expresión regular de dirección de correo electrónico, por ejemplo.

Mire ErrorProvider para permitir al usuario escribir lo que quiera pero muestre advertencias mientras escribe.

Para su primera sugerencia de un cuadro de texto que solo permite números, también puede considerar un NumericUpDown.

+1

Una interfaz de usuario diseñada adecuadamente debe dejar ninguna confusión en cuanto a por qué su texto no se ha escrito. Estoy en un equipo de desarrollo que está utilizando el software de Facturación Médica para personas que nunca antes usaron computadoras, e incluso ellos entienden por qué las cartas no se ingresan en un SSN o campo de número de ID de seguro. –

+0

Principalmente usaría la validación de entrada, la prevención a veces en casos como SSN y búsqueda por idc, etc. – eomeroff

0

Use el cuadro Máscara de texto y asigne MasktextboxId.Mask.

U Si desea utilizar cuadro de texto a continuación, usted tiene que escribir expresiones regulares para que

0

control de eventos pulsación de tecla del usuario para enmascarar la entrada al no permitir que los caracteres no deseados.

para permitir que sólo los números con decimales:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     // allows 0-9, backspace, and decimal 
     if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 46)) 
     { 
      e.Handled = true; 
      return; 
     } 

     // checks to make sure only 1 decimal is allowed 
     if (e.KeyChar == 46) 
     { 
      if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1) 
       e.Handled = true; 
     } 
    } 

para permitir valores sólo números de teléfono:

private void txtPhone_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar >= '0' && e.KeyChar <= '9') return; 
    if (e.KeyChar == '+' || e.KeyChar == '-') return; 
    if (e.KeyChar == 8) return; 
    e.Handled = true; 

} 
Cuestiones relacionadas