İzlenecek Yol: MaskedTextBox Denetimiyle Çalışma
Bu kılavuzda gösterilen görevler şunlardır:
Denetimi başlatma MaskedTextBox
MaskInputRejected Bir karakter maskeye uymadığında kullanıcıyı uyarmak için olay işleyicisini kullanma
Özelliğine ValidatingType bir tür atama ve işlemeye çalıştıkları değer tür için geçerli olmadığında kullanıcıyı uyarmak için olay işleyicisini kullanma TypeValidationCompleted
Proje Oluşturma ve Denetim Ekleme
Formunuza MaskedTextBox denetimi eklemek için
Denetimi yerleştirmek MaskedTextBox istediğiniz formu açın.
Araç Kutusu'ndan bir MaskedTextBox denetimi formunuza sürükleyin.
Denetime sağ tıklayın ve Özellikler'i seçin. Özellikler penceresinde Maske özelliğini seçin ve özellik adının yanındaki ... (üç nokta) düğmesine tıklayın.
Giriş Maskesi iletişim kutusunda Kısa Tarih maskesini seçin ve Tamam'a tıklayın.
Özellikler penceresinde özelliğini olarak
true
ayarlayınBeepOnError. Bu özellik, kullanıcı maske tanımını ihlal eden bir karakter her girişinde kısa bir bip sesine neden olur.
Mask özelliğinin desteklediği karakterlerin özeti için özelliğin Açıklamalar bölümüne Mask bakın.
Kullanıcıyı Giriş Hataları Konusunda Uyar
Reddedilen maske girişi için balon ipucu ekleme
Araç Kutusu'na dönün ve formunuza bir ToolTip ekleyin.
Giriş hatası oluştuğunda MaskInputRejected oluşturan olay için bir olay ToolTip işleyicisi oluşturun. Balon ipucu beş saniye boyunca veya kullanıcı tıklayana kadar görünür durumda kalır.
public void Form1_Load(Object sender, EventArgs e) { ... // Other initialization code maskedTextBox1.Mask = "00/00/0000"; maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected) } void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) { toolTip1.ToolTipTitle = "Invalid Input"; toolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", maskedTextBox1, maskedTextBox1.Location, 5000); }
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ToolTip1.IsBalloon = True Me.MaskedTextBox1.Mask = "00/00/0000" End Sub Private Sub MaskedTextBox1_MaskInputRejected(sender as Object, e as MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected ToolTip1.ToolTipTitle = "Invalid Input" ToolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", MaskedTextBox1, 5000) End Sub
Kullanıcıyı Geçerli Olmayan Bir Türe Uyar
Geçersiz veri türleri için balon ipucu ekleme
Formunuzun Load olay işleyicisinde, denetimin ValidatingType özelliğine DateTime türünü temsil eden bir Type nesne atayınMaskedTextBox:
private void Form1_Load(Object sender, EventArgs e) { // Other code maskedTextBox1.ValidatingType = typeof(System.DateTime); maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted); }
Private Sub Form1_Load(sender as Object, e as EventArgs) // Other code MaskedTextBox1.ValidatingType = GetType(System.DateTime) End Sub
Olay için bir olay işleyicisi TypeValidationCompleted ekleyin:
public void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e) { if (!e.IsValidInput) { toolTip1.ToolTipTitle = "Invalid Date Value"; toolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000); e.Cancel = true; } }
Public Sub MaskedTextBox1_TypeValidationCompleted(sender as Object, e as TypeValidationEventArgs) If Not e.IsValidInput Then ToolTip1.ToolTipTitle = "Invalid Date Value" ToolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000) e.Cancel = True End If End Sub
Ayrıca bkz.
.NET Desktop feedback