我有一个带有名为'tbWO'的文本框的表单。该字段用于输入采购订单编号。我还有一个名为'btnFill'的按钮控件。单击btnFill时,它会使用“tbWO”中的参数填充数据集。
我希望能够在'tbWO'文本框中输入'ENTER'(在输入采购订单#之后),然后激活我上面提到的btnFill_Click事件。
我尝试了这些错误的,编写得很糟糕的代码 - 但是,它只是不能正常工作,即根本不工作,或者我认为它应该如何工作。无论如何,代码如下;在所有的荣耀中。
private void txtWO_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnFill.Click += new EventHandler(btnFill_Click);
}
}
我会对使用'new EvenHandler(??)感到困惑。相当新的C#(可能很明显很明显。)
任何帮助,链接和建议 - 都非常感谢。
感谢。
Jasoomian
答案 0 :(得分:0)
private void txtWO_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
btnFill_Click();
}
}
答案 1 :(得分:0)
通常,我厌恶将一个事件处理程序映射到另一个事件处理程序。相反,编写一个单独的函数,并让两个事件处理程序调用该单独的函数。像这样:
private void txtWO_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
AcceptInput();
}
}
private void btnFill_Click(object sender, EventArgs e)
{
AcceptInput();
}
private void AcceptInput()
{
// Do clever stuff here when the user presses enter
// in the field, or clicks the button.
}
当然,您可能会有不同的感受,但它完成了同样的事情,但(IMO)代码更易读。但是,根据我的经验,纵横交错的事件处理程序非常马虎,并导致维护问题远离wazoo。