调用PerformClick会取消关闭事件

时间:2015-09-15 07:58:04

标签: c# winforms

在我的WinForms应用程序中发生了一些奇怪的事情(奇怪的是,这通常是我的错)。

我有一个FormClosing事件,它将检查是否对尚未保存的表单进行了任何更改。

如果用户确认保存更改,我将调用“保存”按钮的单击事件。但是,即使我删除OnClick事件中的所有逻辑,表单仍保持打开状态,我必须在关闭之前再次关闭它。

如果我跳过第buttonSave.PerformClick();行,则表单会正常关闭。

为什么要进入点击事件,取消关闭?有什么工作吗?

private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
  //Check if there changes were made on the form
  //Prompt user to save
  if (confirmSave)
     buttonSave.PerformClick();

}

private void buttonSave_Click(object sender, EventArgs e)
{
 //Everything in here commented out.
}

1 个答案:

答案 0 :(得分:0)

只需拨打活动而不是PerformClick。 PerformClick可能会执行更多使代码停止关闭的代码。就像显示按钮被点击一样,声音等。

所以将PerformClick更改为buttonSave_Click。所以它只会执行保存功能,而不用按钮本身做任何事情。