MaskedTextBox.TypeValidationCompleted Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
MaskedTextBox özelliğini kullanarak ValidatingType geçerli değeri ayrıştırma tamamlandığında gerçekleşir.
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
Olay Türü
Örnekler
Aşağıdaki kod örneği, kullanıcının girişini geçerli DateTime bir nesne olarak ayrıştırmaya çalışır. Başarısız olursa, TypeValidationCompleted olay işleyicisi kullanıcıya bir hata iletisi görüntüler. Değer geçerli DateTimebir ise kod, sağlanan tarihin bugünün tarihinden önce olmadığını doğrular. Bu kod örneği, Windows Forms projenizin adlı bir MaskedTextBox denetim ve adlı MaskedTextBox1
ToolTip1
bir denetim içermesi ToolTip gerekir.
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
Açıklamalar
Denetim isteğe MaskedTextBox bağlı olarak kullanıcı girişini özelliği tarafından MaskedTextBox.ValidatingType tanımlanan türe göre doğrular. Bu özellik olmadığında null
, aşağıdaki olay dizisi gerçekleşir:
Doğrulama sırası aşağıdakilerden biri gerçekleştiğinde başlar:
MaskedTextBox denetim odağı gevşetir.
Text özelliği alınır.
ValidateText yöntemi çağrılır.
Bu olaylardan herhangi biri, özelliğiyle belirtilen türün yöntemine bir çağrıyla
Parse
sonuçlanır ValidatingType .Parse
, biçimlendirilmiş giriş dizesinin hedef türe dönüştürülme işleminden sorumludur. Başarılı bir dönüştürme, başarılı bir doğrulamaya eşit.Döndürdükten TypeValidationCompleted sonra
Parse
olay oluşturulur. Bu olayın olay işleyicisi en yaygın olarak tür veya maske doğrulama işlemini gerçekleştirmek için uygulanır. Dönüştürme hakkında bilgi içeren bir TypeValidationEventArgs parametre alır; örneğin, IsValidInput üye dönüştürmenin başarılı olup olmadığını gösterir.Olay işleyicisi TypeValidationCompleted döndürdükten sonra standart doğrulama olayı olan Validating, oluşturulur. Bir işleyici, belki de olayı iptal etmek de dahil olmak üzere standart doğrulama gerçekleştirmek için uygulanabilir.
Olay 3. adımda iptal edilmediyse standart denetim doğrulama olayı Validated oluşturulur.
Cancel Olay işleyicisinde TypeValidationCompleted özelliği olarak true
ayarlanırsa, sonraki Validating olay özelliğinin sürümünü CancelEventArgs.Cancel olarak ayarlamadığı false
sürece olay iptal edilir ve MaskedTextBox denetim odağı korur.