我有一个蒙面文本框,只允许用户输入字母数字字母。
但是如何才能获得无限制输入的字母数量,因此可以输入任意数量的字母而不限于掩码?
nameTextBox.ValidatingType = typeof(System.Char);
nameTextBox.TypeValidationCompleted += new TypeValidationEventHandler(nameTextBox_TypeValidationCompleted);
答案 0 :(得分:0)
MaskedTextBox不支持MaxLength属性,如here所述。您必须指定具有特定长度的掩码,例如对于任何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";
}
}