使用[X]按钮和一个单个子中的普通按钮处理关闭WPF窗口

时间:2016-11-17 11:49:45

标签: wpf vb.net

我正在使用WPF / VB.NET中的红色[X]按钮处理窗口关闭,如下所示:

Private Sub Window_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    If MessageBox.Show("Voulez-vous vraiment fermer l'outil ?", "FT_SOFT", MessageBoxButton.YesNo) = MessageBoxResult.No Then
        e.Cancel = True
    End If
End Sub

我有一个"关闭"在此子窗口中处理的窗口内的按钮:

Private Sub MenuItem_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles mniQuitter.Click
    If MessageBox.Show("Voulez-vous vraiment fermer l'outil ?", "FT_SOFT", MessageBoxButton.YesNo) = MessageBoxResult.Yes Then
        RemoveHandler MyBase.Closing, AddressOf Window_Closing
        MyBase.Close()
    End If
End sub

单击关闭按钮时,行RemoveHandler MyBase.Closing, AddressOf Window_Closing会阻止调用第一个子句,否则,您将获得两个MessageBox。

我正在寻找一种更简洁的方法,通过调用第二个子中的第一个子,但e参数类型不匹配(显然)。怎么办呢?

1 个答案:

答案 0 :(得分:1)

仅从MyBase.Close()

致电MenuItem_Click
Private Sub MenuItem_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles mniQuitter.Click
    MyBase.Close()
End sub

下一个事件将是Window_Closing,MessageBox将从那里出现