8

我的应用程序是 WinForms .NET 4 (C#),其中一个表单在按下按钮后会自动关闭。

  • 表单确实有默认的接受和取消按钮,但这些都没有被触及。
  • 有一个 ButtonTestConnection_Click 事件,当单击它时,它会完成它的工作,但会以某种方式关闭表单。
  • 我正在使用鼠标单击按钮,因此这不是级联击键的情况。
  • 我没有在这个函数中设置 DialogResult。

我还尝试检查流浪 this.Close / this.Dispose 调用,但没有找到。

这是代码:

private void ButtonTestConnection_Click (object sender, System.EventArgs e)
{
    this.Enabled = false;
    this.Cursor = System.Windows.Forms.Cursors.WaitCursor;

    this.ProgressBar.Minimum = 0;
    this.ProgressBar.Maximum = 500;
    this.ProgressBar.Value = 0;

    this.ProgressBar.Visible = true;
    this.ButtonTestConnection.Visible = false;

    try
    {
        while (this.ProgressBar.Value < this.ProgressBar.Maximum)
        {
            // Some proxy code.
            this.ProgressBar.Value++;
        }
    }
    catch
    {
    }

    this.ProgressBar.Visible = false;
    this.ButtonTestConnection.Visible = true;

    this.ProgressBar.Invalidate();
    System.Windows.Forms.Application.DoEvents();
    System.Threading.Thread.Sleep(10);

    this.Cursor = System.Windows.Forms.Cursors.Default;
    this.Enabled = true;

    System.Windows.Forms.MessageBox.Show(result.ToString());
}
4

1 回答 1

34

检查按钮上的属性是否DialogResult等于None
如果没有,那么当您点击该按钮时表单将关闭,并且表单将返回 Button 的 DialogResult 属性的设置。

通常,当您复制/粘贴现有​​表单的按钮但忘记在粘贴的按钮上删除原始 DialogResult 设置时,这种情况经常发生

于 2012-06-05T15:53:47.167 回答