我有3种WPF形式,即MainWindow,SettingWindow和FinalWindow。单击按钮时,我要在SettingWindow中有一个FinalButton,我想克隆当前的SettingWindows并要打开FinalWindow。同样,当我单击标题栏中的“关闭”按钮时,我想关闭当前窗体并打开MainWindow。但是我一直面临一个问题,问题是当我单击标题栏中的“关闭”按钮或单击“ ButtonFinal”时,在两种情况下都打开了MainWindow,为避免这种情况,我必须在关闭事件中放置一个条件才能知道哪个按钮引发了该事件。我没有得到该问题的实际解决方案。您能帮我解决问题吗?
private void ButtonFinal_Click(object o, RoutedEventArgs e)
{
FinalWindow finalWindow = new FinalWindow();
finalWindow.Show();
this.Close();
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
}
答案 0 :(得分:1)
您可以在ButtonFinal_Click
事件处理程序中设置一个标志,并在Closing
事件处理程序中检查该标志,例如:
private bool _closedByButton;
private void ButtonFinal_Click(object o, RoutedEventArgs e)
{
FinalWindow finalWindow = new FinalWindow();
finalWindow.Show();
_closedByButton = true;
this.Close();
_closedByButton = false;
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (_closedByButton)
{
//...
}
}