此:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx
...表示我应该在KeyPress事件中访问e.KeyCode,但我似乎没有。我试图只允许1,2,3和退格:
private void textBoxQH1_KeyPress(object sender, KeyPressEventArgs e) {
if ((e.KeyChar != '1') &&
(e.KeyChar != '2') &&
(e.KeyChar != '3') &&
(e.KeyChar != (Keys.Back))) {
e.Handled = true;
}
}
......但是“e。”没有显示像示例所示的“KeyCode”值,并且尝试使用Keys.Back的KeyChar骂我,“运算符'!='不能应用于'char'和'System.Windows.Forms.Keys'类型的操作数“
那我怎么能做到这一点?
答案 0 :(得分:15)
尝试比较e.KeyChar != (char)Keys.Back
,你应该将它转换为char,因为Keys是枚举
答案 1 :(得分:1)
我很确定我只是通过使用KeyDown
事件来解决这个问题;它有不同的事件参数。
答案 2 :(得分:0)
尝试设置这样的条件:
代码:
if (e.KeyCode == (Keys.Back))
{
if(textBox1.Text.Length >=3)
{
if (textBox1.Text.Contains("-"))
{
textBox1.Text.Replace("-", "");
}
}
}