验证c#.net中的文本框

时间:2013-04-27 08:49:01

标签: c#

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

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

    }

2 个答案:

答案 0 :(得分: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

希望它有所帮助。

答案 1 :(得分:1)

在KeyDown事件中,您将获得的e.KeyValue是键盘上的键码而不是字符,请参阅Keys Enumeration。这种情况适用于A-Z和a-z。

 (e.KeyValue >= Keys.A && e.KeyValue <= Keys.Z)