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