限制桧木

时间:2014-01-20 13:24:48

标签: c# windows forms textbox keypress

我正在使用C#,Visual Studio 2010,Windows窗体应用程序以及使用文本框。

对于这个文本框,我不希望用户能够按数字,退格键和字母(大写和小写)之外的任何键。任何其他字符(例如@#$%^)都会发出蜂鸣声并拒绝按键。

检查这些键范围的代码是什么?

谢谢!

1 个答案:

答案 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属性后将其重新设置到适当的位置。

根据应用程序的需要,我会让用户输入他们想要的内容,然后在用户尝试提交时标记文本框(将文本变为红色或其他内容)。