【问题标题】:firing button_click event with code and returning DialogResult.OK使用代码触发 button_click 事件并返回 DialogResult.OK
【发布时间】:2015-01-10 17:02:12
【问题描述】:

如果用户在文本框上按下回车键,我想触发一个按钮单击事件,但是当我这样做时,按钮没有返回 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);
    }
}

任何想法为什么文本框事件不会导致按钮返回 DialogResult.OK?

【问题讨论】:

    标签: c# .net winforms button visual-studio-2013


    【解决方案1】:

    您应该使用btnPartialComplete.PerformClick()。通过调用PerformClick(),您正在为您的按钮生成一个单击事件,但是当您调用btnPartialComplete_Click 时,您只是执行一个注册为在引发按钮的单击事件时执行的函数。所以调用btnPartialComplete_Click不等于点击按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2018-07-26
      • 2012-07-20
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2014-11-05
      相关资源
      最近更新 更多