10

这:

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”值,并且尝试使用 KeyChar 和 Keys.Back 责骂我,“运算符'!='不能应用于'char'和'System.Windows.Forms.Keys'类型的操作数"

那么我怎样才能做到这一点呢?

4

3 回答 3

22

尝试比较e.KeyChar != (char)Keys.Back,你应该把它转换为 char 因为 Keys 是一个枚举

看到这个:KeyPressEventArgs.KeyChar

于 2012-04-23T22:07:49.200 回答
2

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

于 2012-04-23T22:06:13.860 回答
0

尝试提出这样的条件:

代码 :

 if (e.KeyCode == (Keys.Back))
 {
        if(textBox1.Text.Length >=3)
        {
             if (textBox1.Text.Contains("-"))
             {
                 textBox1.Text.Replace("-", "");
             }
        }
 }
于 2016-09-22T05:07:17.377 回答