1

I have a masked textbox where the user is only allowed to enter alphanumeric letters.

But how can I get the amount of letters to be entered unlimited, so any number of letters can be entered and not restricted to the mask?

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

1 回答 1

0

MaskedTextBox 不支持 MaxLength 属性,如此所述。您必须指定具有特定长度的掩码,例如任何 5 个字符的“LLLLL”。如果你想要一个任意长度,你可能不得不使用一个常规的 TextBox,并为 Validating 和 TextChanged 连接事件处理程序。为了给用户反馈,您可以在 TextBox 旁边添加一个标签,其中包含有关有效字符的信息以及它当前是否有效。

对于快速而肮脏的解决方案,您可以尝试以下操作:

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";    
    }
}
于 2013-03-10T20:08:27.777 回答