Esta documentación está archivada y no tiene mantenimiento.

MaskedTextBox.TypeValidationCompleted (Evento)

Se produce cuando MaskedTextBox ha terminado de analizar el valor actual utilizando la propiedad ValidatingType.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public event TypeValidationEventHandler TypeValidationCompleted
/** @event */
public void add_TypeValidationCompleted (TypeValidationEventHandler value)

/** @event */
public void remove_TypeValidationCompleted (TypeValidationEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

El control MaskedTextBox validará opcionalmente los datos proporcionados por el usuario contra el tipo definido por su propiedad MaskedTextBox.ValidatingType. Cuando esta propiedad no es referencia null (Nothing en Visual Basic), se produce la siguiente serie de eventos:

  1. La secuencia de validación comienza cuando ocurre una de las siguientes acciones:

    • El control MaskedTextBox pierde el foco.

    • Se recupera la propiedad Text.

    • Se llama al método ValidateText.

  2. Cualquiera de estos eventos produce una llamada al método Parse del tipo especificado con la propiedad ValidatingType. Parse es responsable de la conversión de la cadena de entrada con formato al tipo de destino. Una conversión correcta equivale a una validación correcta.

  3. Cuando Parse vuelve, se produce el evento TypeValidationCompleted. El controlador de este evento suele implementarse para realizar el proceso de validación del tipo o de la máscara. Recibe un parámetro TypeValidationEventArgs que contiene información sobre la conversión; por ejemplo, el miembro IsValidInput indica si la conversión tuvo éxito.

  4. Cuando vuelve el controlador del evento TypeValidationCompleted, se produce el evento de validación estándar, Validating. Es posible implementar un controlador para realizar la validación estándar, quizás incluyendo la cancelación del evento.

  5. Si el evento no se cancela en el paso 3, se produce el evento estándar de validación del control Validated.

Si la propiedad Cancel se establece en true en el controlador del evento TypeValidationCompleted, se cancelará el evento y el control MaskedTextBox conservará el foco, a menos que el evento Validating subsiguiente vuelva a establecer su versión de la propiedad CancelEventArgs.Cancel en false.

En el ejemplo de código siguiente se intenta analizar la entrada del usuario como un objeto DateTime válido. Si se produce un error, el controlador de eventos TypeValidationCompleted muestra un mensaje de error al usuario. Si el valor es un DateTime válido, el código comprueba que la fecha proporcionada no es anterior a la fecha de hoy. En este ejemplo de código se requiere que su proyecto de formularios Windows Forms contenga un control MaskedTextBox denominado MaskedTextBox1 y un control ToolTip denominado ToolTip1.

private void Form1_Load(object sender, EventArgs e)
{
    maskedTextBox1.Mask = "00/00/0000";
    maskedTextBox1.ValidatingType = typeof(System.DateTime);
    maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
    maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown);

    toolTip1.IsBalloon = true;
}

void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
    if (!e.IsValidInput)
    {
        toolTip1.ToolTipTitle = "Invalid Date";
        toolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", maskedTextBox1, 0, -20, 5000);
    }
    else
    {
        //Now that the type has passed basic type validation, enforce more specific type rules.
        DateTime userDate = (DateTime)e.ReturnValue;
        if (userDate < DateTime.Now)
        {
            toolTip1.ToolTipTitle = "Invalid Date";
            toolTip1.Show("The date in this field must be greater than today's date.", maskedTextBox1, 0, -20, 5000);
            e.Cancel = true;
        }
    }
}

// Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    toolTip1.Hide(maskedTextBox1);
}

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: