Tutorial: Trabajar con el control MaskedTextBox

Las tareas ilustradas en este tutorial incluyen:

  • Inicializar el control MaskedTextBox

  • Usar el controlador de eventos MaskInputRejected para alertar al usuario cuando un carácter no se ajuste a la máscara

  • Asignar un tipo a la propiedad ValidatingType y usar el controlador de eventos TypeValidationCompleted para alertar al usuario cuando el valor que intenta confirmar no es válido para el tipo

Creación del proyecto y adición de un control

Para agregar un control MaskedTextBox al formulario

  1. Abra el formulario en el que desea colocar el control MaskedTextBox.

  2. Arrastre un control MaskedTextBox del cuadro de herramientas al formulario.

  3. Haga clic con el botón derecho en el control y seleccione Propiedades. En la ventana Propiedades, seleccione la propiedad Mask y haga clic en el botón ... (puntos suspensivos) situado junto al nombre de la propiedad.

  4. En el cuadro de diálogo Máscara de entrada, seleccione la máscara Fecha corta y haga clic en Aceptar.

  5. En la ventana Propiedades, establezca la propiedad BeepOnError en true. Esta propiedad hace que un breve pitido suene cada vez que el usuario intente introducir un carácter que infringe la definición de máscara.

Para obtener un resumen de los caracteres que admite la propiedad Mask, vea la sección Comentarios de la propiedad Mask.

Alerta al usuario de errores de entrada

Adición de un globo de sugerencias de una entrada de máscara rechazada

  1. Vuelva al cuadro de herramientas y agregue un elemento ToolTip al formulario.

  2. Cree un controlador de eventos relativo al evento MaskInputRejected que genere ToolTip cuando se produzca un error de entrada. El globo de sugerencias permanece visible durante cinco segundos o hasta que se hace clic en él.

    public void Form1_Load(Object sender, EventArgs e)
    {  
        ... // Other initialization code  
        maskedTextBox1.Mask = "00/00/0000";  
        maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected)  
    }  
    
    void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)  
    {  
        toolTip1.ToolTipTitle = "Invalid Input";  
        toolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", maskedTextBox1, maskedTextBox1.Location, 5000);  
    }  
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
        Me.ToolTip1.IsBalloon = True  
        Me.MaskedTextBox1.Mask = "00/00/0000"  
    End Sub  
    
    Private Sub MaskedTextBox1_MaskInputRejected(sender as Object, e as MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected  
        ToolTip1.ToolTipTitle = "Invalid Input"  
        ToolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", MaskedTextBox1, 5000)  
    End Sub  
    

Alerta al usuario de un tipo que no es válido

Adición de un globo de sugerencias de tipos de datos no válidos

  1. En el controlador de eventos Load del formulario, asigne un objeto Type que represente el tipo DateTime a la propiedad ValidatingType del control MaskedTextBox:

    private void Form1_Load(Object sender, EventArgs e)  
    {  
        // Other code  
        maskedTextBox1.ValidatingType = typeof(System.DateTime);  
        maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);  
    }  
    
    Private Sub Form1_Load(sender as Object, e as EventArgs)  
        // Other code  
        MaskedTextBox1.ValidatingType = GetType(System.DateTime)  
    End Sub  
    
  2. Agregue un controlador de eventos para el evento TypeValidationCompleted:

    public void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)  
    {  
        if (!e.IsValidInput)  
        {  
           toolTip1.ToolTipTitle = "Invalid Date Value";  
           toolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000);  
           e.Cancel = true;  
        }  
    }  
    
    Public Sub MaskedTextBox1_TypeValidationCompleted(sender as Object, e as TypeValidationEventArgs)  
        If Not e.IsValidInput Then  
           ToolTip1.ToolTipTitle = "Invalid Date Value"  
           ToolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000)  
           e.Cancel = True  
        End If  
    End Sub  
    

Consulte también