2

嗨,我只想用字母设置我的文本框,我尝试了以下代码,它对键盘键工作正常。但是如果我按数字键盘的数字,它正在接受数字,任何人都可以帮助我,非常感谢谢谢。

bool isvalid = true;

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if ((e.KeyValue <65 || e.KeyValue > 90) && (e.KeyValue<97||e.KeyValue>122) e.KeyValue != 8))
        {
            isvalid = false;
            MessageBox.Show("only alphabets");

        }
        else
        {
            isvalid = true;

        }
    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (isvalid == false)
        {
            e.Handled = true;
        }
        else
        {
            e.Handled = false;
        }

    }
4

2 回答 2

3

使用Regex.IsMatch财产。

可以使用以下代码:

private void txtAlphaOnly_TextChanged(object sender, EventArgs e)
{
    if (System.Text.RegularExpressions.Regex.IsMatch("^[a-zA-Z]", txtAlphaOnly.Text))
    {
        MessageBox.Show("Alphabets Only Allowed");            
    }
}

MSDN:

http://msdn.microsoft.com/en-IN/library/system.text.regularexpressions.regex.ismatch.aspx

希望它有帮助。

于 2013-04-27T08:52:47.463 回答
1

在 KeyDown 事件中,您将在 e.KeyValue 上获得的是键盘上的键代码而不是字符,请参阅Keys Enumeration。对于 AZ 和 az,此条件成立。

 (e.KeyValue >= Keys.A && e.KeyValue <= Keys.Z)
于 2013-04-27T08:57:23.067 回答