我的初衷是让文本框的输入事件运行btnOK_Click事件,但经过几次尝试我无法实现它,所以我尝试了另一种方式并尝试使用KeyPress获取任何键,但仍然没有'工作,所以我做了这两个简单的代码,但它仍然没有工作;
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//enter key is down
//btnOK_Click(this, e);
System.Windows.Forms.MessageBox.Show("My message here");
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
{
//enter key is down
//btnOK_Click(this, e);
System.Windows.Forms.MessageBox.Show(((char)Keys.Return).ToString());
}
}
有什么建议吗?我读了一些类似的问题,他们说要将IsInputKey
属性设置为true,但我无法在任何地方找到它。我使用Visual Studio 2008
答案 0 :(得分:0)
在我看来,你正在寻找类似这样的东西
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)//should be replaced with enter
{
button1.PerformClick();
}
}
注意:上面的代码位于KeyDown
而不是KeyPress
假设您正在使用winforms
,此代码应该有效答案 1 :(得分:0)
两个选项: 1)使用按键事件为
public void txt_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnOK_Click(sender, e); // or btn.PerformClick();
return;
}
}
2)使BtnOK成为表单的AcceptButton。 (注意:这将适用于表单中的所有文本框)
this.AcceptButton = btnOK;
答案 2 :(得分:0)
使用Escape键而不是返回键:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnOK_Click(sender, e);
MessageBox.Show("My message here");
}
else if (e.KeyCode == Keys.Escape)
{
btnOK_Click(sender, e);
MessageBox.Show(((char)Keys.Escape).ToString());
}
}
private void btnOK_Click(object sender, EventArgs e)
{
MessageBox.Show("Test");
}
}
}
您也可以在KeyDown事件中检查两个键。 你也可以用
btnOK.PerformClick();
而不是
btnOK_Click(sender, e);