Compartir a través de


Tutorial: Trabajar con el control MaskedTextBox

Las tareas que se muestran en este tutorial incluyen:

  • Inicializando el control MaskedTextBox

  • Uso del MaskInputRejected controlador de eventos para alertar al usuario cuando un carácter no se ajusta a la máscara

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

Crear el proyecto y agregar un control

Para agregar un control MaskedTextBox al formulario

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

  2. Arrastre un MaskedTextBox control desde el Cuadro de herramientas al formulario.

  3. Haga clic con el botón derecho en el control y elija 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 intenta introducir un carácter que infringe la definición de máscara.

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

Alertar al usuario de los errores de entrada

Adición de una sugerencia de globo para la entrada de máscara rechazada

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

  2. Cree un controlador de eventos para el evento MaskInputRejected que activa ToolTip cuando se produce un error de entrada. La punta del globo permanece visible durante cinco segundos o hasta que el usuario lo haga clic.

    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
    

Alertar al usuario sobre un tipo que no es válido

Adición de una sugerencia de globo para tipos de datos no válidos

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

    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 TypeValidationCompleted evento:

    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