C# 如何确定在按键事件中是否按下了退格键?

C# 如何确定在按键事件中是否按下了退格键?,c#,winforms,keypress,keycode,C#,Winforms,Keypress,Keycode,这: …表示我应该在按键事件中访问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 !=

这:

…表示我应该在按键事件中访问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”值,并尝试使用键键入KeyChar。Back责骂我,“Operator'!=”不能应用于“char”和“System.Windows.Forms.Keys”类型的操作数


那么,我如何才能做到这一点呢?

我很确定,我只不过是用
KeyDown
事件来解决这个问题;它有不同的事件参数。

尝试比较
e.KeyChar!=(char)Keys.Back
,您应该将其强制转换为char,因为Keys是一个枚举


请参见:

尝试设置如下条件:

代码:

 if (e.KeyCode == (Keys.Back))
 {
        if(textBox1.Text.Length >=3)
        {
             if (textBox1.Text.Contains("-"))
             {
                 textBox1.Text.Replace("-", "");
             }
        }
 }
c#???嗯,我不确定,但可能:
(e.KeyChar!=(char)8)