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...
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;
}
}
}
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With