首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让MaskedTextBox只接受字母

让MaskedTextBox只接受字母
EN

Stack Overflow用户
提问于 2010-11-26 21:26:02
回答 2查看 11.3K关注 0票数 2

下面是我的代码:

代码语言:javascript
复制
private void Form1_Load(object sender, EventArgs e)
{
    maskedTextBox1.Mask = "*[L]";
    maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected);
}

我如何将其设置为只接受字母,但接受用户想要的字母数量?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-26 21:40:48

如果掩码文本框接受正则表达式,这将很容易,但不幸的是,它们不接受。

一种方法(虽然不是很好)是使用可选的字母?掩码,并输入与文本框中允许的最大长度相同的长度,即

代码语言:javascript
复制
maskedTextBox1.Mask = "????????????????????????????????.......";

或者,您可以使用自己的验证而不是掩码,并使用正则表达式,如下所示

代码语言:javascript
复制
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事件来忽略除字母以外的任何按键操作,在我看来,这将是最好的方法。

代码语言:javascript
复制
private void textbox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), @"^[a-zA-Z]+$"))
          e.Handled = true;
}
票数 6
EN

Stack Overflow用户

发布于 2010-11-26 23:14:54

如果只想输入字母,可以在keyPress事件中使用它

代码语言:javascript
复制
if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)) //The latter is for enabling control keys like CTRL and backspace
{
     e.Handled = true;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4285653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档