这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.Mask = "*[L]";
maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected);
}
如何将其设置为仅接受字母,但用户需要多少?谢谢!
答案 0 :(得分:6)
如果蒙面文本框接受正则表达式,这将很容易,但遗憾的是它们没有。
你可以做的一种方法(尽管不是很漂亮)是使用可选的字母?
掩码,并在文本框中输入与你允许的最大长度相同的数量,即
maskedTextBox1.Mask = "????????????????????????????????.......";
或者你可以使用你自己的验证而不是掩码,并使用像这样的正则表达式
void textbox1_Validating(object sender, CancelEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(textbox1.Text, @"^[a-zA-Z]+$"))
{
MessageBox.Show("Please enter letters only");
}
}
或者另一种方法是通过处理KeyPress事件来忽略除字母以外的任何按键,这在我看来是最好的方式。
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @"^[a-zA-Z]+$"))
e.Handled = true;
}
答案 1 :(得分:2)
如果您只想输入字母,可以在keyPress事件
中使用if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)) //The latter is for enabling control keys like CTRL and backspace
{
e.Handled = true;
}