MaskedTextBox.TypeValidationCompleted Händelse
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Inträffar när MaskedTextBox du har parsat det aktuella värdet med hjälp av ValidatingType egenskapen .
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
Händelsetyp
Exempel
Följande kodexempel försöker parsa användarens indata som ett giltigt DateTime objekt. Om det misslyckas TypeValidationCompleted visar händelsehanteraren ett felmeddelande för användaren. Om värdet är giltigt DateTimeverifierar koden att det angivna datumet inte är före dagens datum. Det här kodexemplet kräver att ditt Windows Forms projekt innehåller en MaskedTextBox-kontroll med namnet MaskedTextBox1 och en ToolTip-kontroll med namnet 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
Kommentarer
Kontrollen MaskedTextBox verifierar eventuellt användarindata mot den typ som definieras av dess MaskedTextBox.ValidatingType egenskap. När den här egenskapen inte nullär inträffar följande serie händelser:
Valideringssekvensen börjar när något av följande inträffar:
MaskedTextBox kontrollen tappar fokus.
Egenskapen Text hämtas.
Metoden ValidateText anropas.
Någon av dessa händelser resulterar i ett anrop till
Parsemetoden av den typ som anges med ValidatingType egenskapen .Parseansvarar för konverteringen av den formaterade indatasträngen till måltypen. En lyckad konvertering motsvarar en lyckad validering.När
Parseden har returnerats TypeValidationCompleted utlöses händelsen. Händelsehanteraren för den här händelsen implementeras oftast för att utföra typ- eller maskverifieringsbearbetning. Den tar emot en TypeValidationEventArgs parameter som innehåller information om konverteringen, IsValidInput till exempel anger medlemmen om konverteringen lyckades.När händelsehanteraren för TypeValidationCompleted händelsen returneras utlöses standardverifieringshändelsen , Validating. En hanterare kan implementeras för att utföra standardverifiering, kanske inklusive att avbryta händelsen.
Om händelsen inte avbryts i steg 3 utlöses standardkontrollens valideringshändelse Validated .
Om egenskapen Cancel är inställd true på i TypeValidationCompleted händelsehanteraren avbryts händelsen och MaskedTextBox kontrollen behåller fokus, såvida inte den efterföljande Validating händelsen anger dess version av CancelEventArgs.Cancel egenskapen till false.