2012-02-13 80 views
0

我正在寻找关闭应用程序时,我单击登录页面中的取消按钮,但我不想这样做的窗口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中欣赏代码。

+0

据我可以告诉你的代码看起来不错。您是否在Click和CloseApp事件处理程序中设置了任何断点以查看它们是否被击中? – Clemens 2012-02-13 09:19:30

+0

是的。实际上它工作,我学到了一些东西。 :) – will0809 2012-02-15 01:01:18

回答

0

你应该看看你的项目设置/应用程序/关机模式,并将其设置为'On explicit shutdown'。我想这是登录页面的事件挂钩到引发事件的事件处理程序。)
也尝试在事件处理程序中设置断点以查看它是否已到达。