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.
try following steps it will work, bcoz i have tested it.
- select textbox, right click on it, then click on properties.
- click on event, then double click on KeyPress
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
{
}
}