/ / maskierte TextBox mit unbegrenzter Maske - c #, .net, winforms

maskierte TextBox mit unbegrenzter Maske - c #, .net, winforms

Ich habe ein maskiertes Textfeld, in das der Benutzer nur alphanumerische Buchstaben eingeben darf.

Aber wie kann ich die Anzahl der Buchstaben unbegrenzt eingeben, sodass eine beliebige Anzahl von Buchstaben eingegeben werden kann und nicht auf die Maske beschränkt ist?

        nameTextBox.ValidatingType = typeof(System.Char);
nameTextBox.TypeValidationCompleted += new        TypeValidationEventHandler(nameTextBox_TypeValidationCompleted);

Antworten:

0 für die Antwort № 1

Die MaskedTextBox unterstützt die MaxLength-Eigenschaft nicht wie beschrieben Hier. Sie müssen eine Maske mit einer bestimmten Länge angeben.zum Beispiel "LLLLL" für 5 beliebige Zeichen. Wenn Sie eine beliebige Länge wünschen, müssen Sie wahrscheinlich stattdessen eine normale TextBox verwenden und Eventhandler für Validating und TextChanged anschließen. Um dem Benutzer ein Feedback zu geben, können Sie neben dem Textfeld ein Label mit Informationen zu den gültigen Zeichen und ob sie aktuell gültig sind oder nicht, hinzufügen.

Für eine schnelle und schmutzige Lösung können Sie Folgendes versuchen:

private void TextBox_TextChanged(object sender, EventArgs e)
{
var originalText = myMaskedTextBox.Text;
var parsedText = Regex.Replace(myMaskedTextBox.Text, "[^a-z_A-Z]", "");

if (originalText == parsedText)
labelInfo.Text = "Valid string";
else
{
myMaskedTextBox.Text = parsedText;
labelInfo.Text = "Only alpha-numeric characters please";
}
}