MaskedTextBox.TypeValidationCompleted Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando MaskedTextBox conclui a análise do valor atual usando a propriedade ValidatingType.
public:
event System::Windows::Forms::TypeValidationEventHandler ^ TypeValidationCompleted;
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 a seguir tenta analisar a entrada do usuário como um objeto válido DateTime . Se falhar, o TypeValidationCompleted manipulador de eventos exibirá uma mensagem de erro para o usuário. Se o valor for válido DateTime, o código verificará se a data fornecida não é anterior à data de hoje. Este exemplo de código requer que seu projeto Windows Forms contenha um MaskedTextBox controle chamado MaskedTextBox1
e um ToolTip controle 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
Comentários
Opcionalmente MaskedTextBox , o controle validará a entrada do usuário em relação ao tipo definido por sua MaskedTextBox.ValidatingType propriedade. Quando essa propriedade não null
é , a seguinte série de eventos ocorre:
A sequência de validação começa quando ocorre um destes procedimentos:
MaskedTextBox o controle solta o foco.
A Text propriedade é recuperada.
O método ValidateText é chamado.
Qualquer um desses eventos resulta em uma chamada para o
Parse
método do tipo especificado com a ValidatingType propriedade .Parse
é responsável pela conversão da cadeia de caracteres de entrada formatada para o tipo de destino. Uma conversão bem-sucedida equivale a uma validação bem-sucedida.Após
Parse
o retorno, o TypeValidationCompleted evento é gerado. O manipulador de eventos para esse evento é mais comumente implementado para executar o processamento de validação de tipo ou máscara. Ele recebe um TypeValidationEventArgs parâmetro que contém informações sobre a conversão; por exemplo, o IsValidInput membro indica se a conversão foi bem-sucedida.Depois que o manipulador de eventos do TypeValidationCompleted evento retorna, o evento de validação padrão, Validating, é gerado. Um manipulador pode ser implementado para executar a validação padrão, talvez incluindo o cancelamento do evento.
Se o evento não for cancelado na etapa 3, o evento Validated de validação de controle padrão será gerado.
Se a Cancel propriedade estiver definida como true
no TypeValidationCompleted manipulador de eventos, o evento será cancelado e o controle manterá o MaskedTextBox foco, a menos que o evento subsequente Validating defina sua versão da propriedade false
como CancelEventArgs.Cancel .