我正在使用C#,Visual Studio 2010,Windows窗体应用程序以及使用文本框。
对于这个文本框,我不希望用户能够按数字,退格键和字母(大写和小写)之外的任何键。任何其他字符(例如@#$%^)都会发出蜂鸣声并拒绝按键。
检查这些键范围的代码是什么?
谢谢!
答案 0 :(得分:1)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsLetter(e.KeyChar) || Char.IsDigit(e.KeyChar) || Char.IsControl (e.KeyChar))){
e.Handled = true;
Console.Beep();
}
}
但是,就像MusiGenesis在这个问题中所说: Allow only alphanumeric in textbox
处理KeyDown或KeyPress事件是不够的。用户仍然可以将无效文字复制并粘贴到文本框中。
更好的方法是处理TextChanged事件,并在那里删除任何有问题的字符。这有点复杂,因为您必须跟踪插入位置并在更改框的Text属性后将其重新设置到适当的位置。
根据应用程序的需要,我会让用户输入他们想要的内容,然后在用户尝试提交时标记文本框(将文本变为红色或其他内容)。