使用代码触发 button_click 事件并返回 DialogResult.OK
firing button_click event with code and returning DialogResult.OK
如果用户在文本框上按下回车键,我想触发一个按钮单击事件,但当我这样做时按钮没有 returning 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();
}
这是我的文本框按键事件
private void tbQtyComplete_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
btnPartialComplete_Click(null, EventArgs.Empty);
}
}
知道为什么文本框事件不会导致按钮 return 变为 DialogResult.OK 吗?
你应该使用 btnPartialComplete.PerformClick()。通过调用 PerformClick()
您正在为您的按钮生成一个点击事件,但是当您调用 btnPartialComplete_Click
时您只是执行一个函数,该函数被注册为在引发按钮的点击事件时执行。所以调用btnPartialComplete_Click
不等于点击按钮。
如果用户在文本框上按下回车键,我想触发一个按钮单击事件,但当我这样做时按钮没有 returning 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();
}
这是我的文本框按键事件
private void tbQtyComplete_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return)
{
btnPartialComplete_Click(null, EventArgs.Empty);
}
}
知道为什么文本框事件不会导致按钮 return 变为 DialogResult.OK 吗?
你应该使用 btnPartialComplete.PerformClick()。通过调用 PerformClick()
您正在为您的按钮生成一个点击事件,但是当您调用 btnPartialComplete_Click
时您只是执行一个函数,该函数被注册为在引发按钮的点击事件时执行。所以调用btnPartialComplete_Click
不等于点击按钮。