C# 在C中调用预关闭函数#

C# 在C中调用预关闭函数#,c#,function,C#,Function,我有一个函数 public void preShut() { saveLastPoint(DataTable A); saveShutVoltage (DataTable A); saveVehicleState (DataTable vStates); } 我想在应用程序窗口关闭时调用此函数(Alt+F4或使用鼠标单击) 只有在调用此函数后,我的应用程序才会关闭。 有人能建议一种方法吗 private void Form1_Fo

我有一个函数

public void preShut()
    {
        saveLastPoint(DataTable A);
        saveShutVoltage (DataTable A);
        saveVehicleState (DataTable vStates);
    }
我想在应用程序窗口关闭时调用此函数(Alt+F4或使用鼠标单击) 只有在调用此函数后,我的应用程序才会关闭。 有人能建议一种方法吗

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{
    if (string.Equals((sender as Button).Name, @"CloseButton"))
        // Do something proper to CloseButton.
    else
        // Then assume that X has been clicked and act accordingly.
}

我得到了这个解决方案,但无法理解它。

如果您使用的是WinForms,那么已经为它定义了一个事件

:关闭窗体时发生FormClosing事件。当表单关闭时,它将被释放,释放与表单关联的所有资源。如果取消此事件,表单将保持打开状态。要取消窗体的关闭,请将传递给事件处理程序的FormClosingEventArgs的cancel属性设置为true

如果您正在使用WPF,那么我们也会为其设置一个事件

:可以处理关闭以检测何时关闭窗口(例如,何时调用Close)。此外,关闭可用于防止窗口关闭。要防止窗口关闭,可以将CancelEventArgs参数的Cancel属性设置为true


您也可以使用委托进行此操作。您可以阅读

我可以得到解释吗?还是只获得否决票?对于Alt+F4方案,没有预先事件。如果用户通过X按钮关闭应用程序,您可以这样做。否则,我建议您像其他软件一样,按间隔自动保存。我怀疑人们会想看到您迄今为止尝试过的代码或至少阅读您的描述。@Jite似乎Alt F4确实触发了该事件。但我相信,如果程序没有响应,而你垃圾发送Alt F4,它最终会以更暴力的方式关闭它(“立即关闭”对话框,等等)。我也不明白否决投票的原因。这里没有什么可展示的。我只是想利用这次活动@谢谢。Stackoverflow对初学者来说是残酷的,记住它的敌人不仅是经验丰富的程序员,而且是所有人的帮助。感谢您的深入解释。这是一个典型的答案。