如果用户在文本框中按Enter键,我想触发按钮单击事件,但是当我按下该按钮时没有返回DialogResult.OK。当我实际点击按钮时,它可以工作。有什么想法吗?
这是我的父表单代码
using (var completedForm = new CompletedForm(Qty))
{
DialogResult result = completedForm.ShowDialog();
if (result == DialogResult.OK)
{
return completedForm.QtyCompleted;
}
MessageBox.Show("Invalid Qty, Please Try Again");
return 0;
}
这是我的子表单按钮单击事件
private void btnPartialComplete_Click(object sender, EventArgs e)
{
if(tbQtyComplete.Text == "")
{
tbQtyComplete.Text = "0";
}
this.QtyCompleted = int.Parse(tbQtyComplete.Text);
this.Close();
}
这是我的文本框keydown事件
private void tbQtyComplete_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
btnPartialComplete_Click(null, EventArgs.Empty);
}
}
为什么textbox事件不会导致按钮返回DialogResult.OK的任何想法?
答案 0 :(得分:1)
您应该使用btnPartialComplete.PerformClick()。通过调用PerformClick()
,您将为按钮生成单击事件,但是当您调用btnPartialComplete_Click
时,您只需执行一个注册在按钮单击事件时执行的功能。所以调用btnPartialComplete_Click
并不等于点击按钮。