“KeyPress” event for WinForms textbox is missing?

2019-06-17 07:37发布

I am trying to add an "KeyPress" event in a textbox (WinForm)

this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckKeys);

and here's inside the 'CheckKeys':

private void CheckKeys(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
        // Enter is pressed - do something

    }
}

The idea here is that once a textbox is in focus and the 'Enter' button was pressed, something will happen...

However, my machine cannot find the 'KeyPress' event. Is there something wrong with my codes?

UPDATE:

I also tried putting KeyDown instead of KeyPress:

private void textBox1_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{

    if (e.Key == Key.Return)

        // Enter is pressed - do something
    }
}

Still not working though...

3条回答
Root(大扎)
2楼-- · 2019-06-17 07:42

You are mixing class libraries, don't use Windows Forms classes in a WPF project. Make it look like this:

  public partial class Window1 : Window {
    public Window1() {
      InitializeComponent();
      this.textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
    }

    private void textBox1_KeyDown(object sender, KeyEventArgs e) {
      if (e.Key == Key.Enter) {
        MessageBox.Show("Enter!");
        e.Handled = true;
      }
    }
  }
查看更多
爷的心禁止访问
3楼-- · 2019-06-17 07:55

try following steps it will work, bcoz i have tested it.

  1. select textbox, right click on it, then click on properties.
  2. click on event, then double click on KeyPress
  3. then type the following code.

    private void textBox2_KeyPress(object sender, KeyPressEventArgs e)  
    {  
        if (e.KeyChar == (char)13)  
        {            
            //press Enter do Something Like i have messagebox below to show "wow"
            MessageBox.Show("wow"); 
        }
        else
        {
        }
    }
    
查看更多
我欲成王,谁敢阻挡
4楼-- · 2019-06-17 08:00

Have you looked at the documentation on KeyPress? It states specifically that The KeyPress event is not raised by noncharacter keys; however, the noncharacter keys do raise the KeyDown and KeyUp events. Using one of those events instead should work.

查看更多
登录 后发表回答