在我的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.
}
答案 0 :(得分:0)
只需拨打活动而不是PerformClick
。
PerformClick可能会执行更多使代码停止关闭的代码。就像显示按钮被点击一样,声音等。
所以将PerformClick
更改为buttonSave_Click
。所以它只会执行保存功能,而不用按钮本身做任何事情。