如何从子窗口中将自定义事件触发回父窗口?

时间:2012-02-13 05:42:36

标签: wpf vb.net events user-controls

当我点击登录页面中的取消按钮时,我希望关闭应用程序,但我不想以Window 2自行关闭的方式执行此操作,而是通过向主窗口发送一些通知,以及主窗口关闭应用程序。这是我到目前为止的代码:

(在loginPage中)

Public Event CloseApp As EventHandler

Private Sub CancelButton_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles CancelButton.Click

    DialogResult = False
    RaiseEvent CloseApp(Me, New EventArgs)
End Sub

(在主窗口中)

Public loginPage As New LoginPage

Public Sub New()
    InitializeComponent()
    AddHandler loginPage.CloseApp, AddressOf Me.ShutDownJobChangeWindow
End Sub

Private Sub ShutDownJobChangeWindow(ByVal sender As Object, ByVal e As EventArgs)
    Application.Current.Shutdown()
End Sub

这不起作用。我是处理事件的新手,所以如果有人能帮忙解释一下这有什么问题,我将非常感谢你!

P / S:我对C#也不太了解,也很欣赏VB.NET中的代码。

1 个答案:

答案 0 :(得分:0)

您应该查看项目设置/应用程序/关闭模式,并将其设置为“显式关闭”。

(我假设这是挂钩到引发事件的事件处理程序的LoginPage实例。)
还尝试在事件处理程序中设置断点以查看是否已到达。