无限制蒙版的文本框

本文关键字:文本 无限制 | 更新日期: 2023-09-27 18:03:09

我有一个遮罩文本框,用户只允许输入字母和数字。

但是我怎样才能使要输入的字母数量不受限制,从而可以输入任意数量的字母而不受掩码的限制呢?

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

无限制蒙版的文本框

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

对于一个快速而肮脏的解决方案,您可以尝试这样做:

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";    
    }
}