У меня есть 3 формы WPF, а именно MainWindow, SettingWindow и FinalWindow. У меня есть FinalButton в SettingWindow, когда я нажимаю кнопку, которую я хочу клонировать текущие настройкиWindows и хочу открыть 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();
}
Всего 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)
{
//...
}
}