我有一个关闭应用程序的WPF控件(例如按钮)。我想知道用于关闭应用程序的自定义构建事件处理程序和默认关闭事件之间是否存在任何差异:
以下两个基本上有区别吗?:
private void Btn_Click(object sender, RoutedEventArgs e)
{
RibbonWindow.Close();
}
和
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
}
答案 0 :(得分:1)
关闭应用和默认事件(Btn_Click
)的自定义事件处理程序(OnClosed
)之间的区别在于,即使您使用自定义事件关闭应用程序,也会始终在结束时调用默认值。默认情况并非如此。一旦调用默认值,之后将不会调用custom,因为显然没有单击按钮。简而言之,当应用程序关闭时(即使单击关闭按钮后)必须需要事件时,应该处理默认事件,同时可以使用自定义事件来询问用户are you sure?
类事物
例如,假设您在应用程序生命周期内创建临时文件,并且必须在应用程序存在之前删除。
现在您可以将此代码放入自定义按钮点击事件中,但如果用户使用Alt + F4
或按钮以外的任何方式关闭应用程序会怎么样?在这种情况下,您的按钮代码将不会被调用,但将始终调用默认关闭事件,您可以安全地删除临时文件。
答案 1 :(得分:0)
我提供的第一个示例是事件处理器事件处理器Bu Button。用户单击按钮时会引发此事件。其次,改为覆盖由WPF系统引发的事件。这是完全不同的故事。事件“源”发生了变化。
问候。