Freigeben über


Anleitung: Arbeiten mit dem "MaskedTextBox"-Steuerelement

In dieser exemplarischen Vorgehensweise werden u. a. folgende Aufgaben veranschaulicht:

  • Initialisieren des Steuerelements MaskedTextBox

  • Der MaskInputRejected Ereignishandler wird benutzt, um den Benutzer zu warnen, wenn ein Zeichen nicht der Maske entspricht.

  • Einen Typ für die ValidatingType-Eigenschaft zuweisen und den TypeValidationCompleted-Ereignishandler verwenden, um den Benutzer zu benachrichtigen, wenn der Wert, den er festzulegen versucht, für den Typ nicht gültig ist.

Erstellen des Projekts und Hinzufügen eines Steuerelements

So fügen Sie ihrem Formular ein MaskedTextBox-Steuerelement hinzu

  1. Öffnen Sie das Formular, auf dem Sie das MaskedTextBox Steuerelement platzieren möchten.

  2. Ziehen Sie ein MaskedTextBox Steuerelement aus der Toolbox in Ihr Formular.

  3. Klicken Sie mit der rechten Maustaste auf das Steuerelement, und wählen Sie "Eigenschaften" aus. Wählen Sie im Eigenschaftenfenster die Eigenschaft Mask aus, und klicken Sie neben dem Eigenschaftennamen auf die Schaltfläche ... (Auslassungspunkte).

  4. Wählen Sie im Dialogfeld " Eingabeformat " das Format "Kurzes Datum " aus, und klicken Sie auf "OK".

  5. Legen Sie im Eigenschaftenfenster die BeepOnError Eigenschaft auf true. Diese Eigenschaft verursacht einen kurzen Signalton, wenn der Benutzer versucht, ein Zeichen einzugeben, das gegen die Maskendefinition verstößt.

Eine Zusammenfassung der von der Mask-Eigenschaft unterstützten Zeichen finden Sie im Abschnitt „Hinweise“ der Mask-Eigenschaft.

Benachrichtigen des Benutzers auf Eingabefehler

Hinzufügen einer Sprechblasentipp für abgelehnte Maskeneingaben

  1. Kehren Sie zur Toolbox zurück und fügen Sie ToolTip zu Ihrem Formular hinzu.

  2. Erstellen Sie einen Ereignishandler für das MaskInputRejected Ereignis, der ToolTip auslöst, wenn ein Eingabefehler auftritt. Die Sprechblasespitze bleibt fünf Sekunden lang sichtbar oder bis der Benutzer darauf klickt.

    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
    

Den Benutzer über einen ungültigen Typ benachrichtigen

Fügen Sie einen Sprechblasentipp für ungültige Datentypen hinzu

  1. Weisen Sie im Ereignishandler des Formulars Load ein Type Objekt zu, das den DateTime Typ der Eigenschaft des MaskedTextBox Steuerelements ValidatingType darstellt:

    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
    
  2. Fügen Sie einen Ereignishandler für das TypeValidationCompleted Ereignis hinzu:

    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
    

Siehe auch