MaskedTextBox.TypeValidationCompleted Evento

Definição

Ocorre quando MaskedTextBox terminou de analisar o valor atual usando a ValidatingType propriedade.

public:
 event System::Windows::Forms::TypeValidationEventHandler ^ TypeValidationCompleted;
public event System.Windows.Forms.TypeValidationEventHandler TypeValidationCompleted;
member this.TypeValidationCompleted : System.Windows.Forms.TypeValidationEventHandler 
Public Custom Event TypeValidationCompleted As TypeValidationEventHandler 

Tipo de Evento

Exemplos

O exemplo de código seguinte tenta analisar a entrada do utilizador como um objeto válido DateTime . Se falhar, o TypeValidationCompleted gestor de eventos mostra uma mensagem de erro ao utilizador. Se o valor for válido DateTime, o código verifica que a data fornecida não é anterior à data de hoje. Este exemplo de código exige que o seu projeto Windows Forms contenha um controlo MaskedTextBox chamado MaskedTextBox1 e um controlo ToolTip chamado 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);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.MaskedTextBox1.Mask = "00/00/0000"
    Me.MaskedTextBox1.ValidatingType = GetType(System.DateTime)

    Me.ToolTip1.IsBalloon = True
End Sub

Private Sub MaskedTextBox1_TypeValidationCompleted(ByVal sender As Object, ByVal e As TypeValidationEventArgs) Handles MaskedTextBox1.TypeValidationCompleted
    If (Not e.IsValidInput) Then
        Me.ToolTip1.ToolTipTitle = "Invalid Date"
        Me.ToolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", Me.MaskedTextBox1, 0, -20, 5000)
    Else
        ' Now that the type has passed basic type validation, enforce more specific type rules.
        Dim UserDate As DateTime = CDate(e.ReturnValue)
        If (UserDate < DateTime.Now) Then
            Me.ToolTip1.ToolTipTitle = "Invalid Date"
            Me.ToolTip1.Show("The date in this field must be greater than today's date.", Me.MaskedTextBox1, 0, -20, 5000)
            e.Cancel = True
        End If
    End If
End Sub

' Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
Private Sub MaskedTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MaskedTextBox1.KeyDown
    Me.ToolTip1.Hide(Me.MaskedTextBox1)
End Sub

Observações

O MaskedTextBox controlo irá opcionalmente validar a entrada do utilizador contra o tipo definido pela sua MaskedTextBox.ValidatingType propriedade. Quando esta propriedade não nullé , ocorre a seguinte série de eventos:

  1. A sequência de validação começa quando ocorre uma das seguintes situações:

  2. Qualquer um destes eventos resulta numa chamada ao Parse método do tipo especificado com a ValidatingType propriedade. Parse é responsável pela conversão da cadeia de entrada formatada para o tipo alvo. Uma conversão bem-sucedida equivale a uma validação bem-sucedida.

  3. Após Parse os regressos, o TypeValidationCompleted evento é elevado. O gestor de eventos deste evento é mais frequentemente implementado para realizar o processamento de validação de tipos ou máscaras. Recebe um TypeValidationEventArgs parâmetro contendo informação sobre a conversão; por exemplo, o IsValidInput membro indica se a conversão foi bem-sucedida.

  4. Depois de o handler de TypeValidationCompleted eventos do evento retornar, o evento de validação padrão, Validating, é levantado. Um handler pode ser implementado para realizar validação padrão, talvez incluindo o cancelamento do evento.

  5. Se o evento não for cancelado no passo 3, o evento Validated padrão de validação de controlo é levantado.

Se a Cancel propriedade for definida para true no TypeValidationCompleted gestor de eventos, o evento será cancelado e o MaskedTextBox controlo mantém o foco, a menos que o evento subsequente Validating defina a sua versão da CancelEventArgs.Cancel propriedade de volta para false.

Aplica-se a

Ver também