0

我有一个简短的问题,即使在网上搜索了一段时间后,我也没有找到答案。我在 WPF 应用程序中有两个窗口。当用户关闭一个窗口时,它应该被隐藏。当主窗口关闭时,整个应用程序将关闭。

我用了

    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        e.Cancel = true;
        Hide();
    }

在第二个窗口的类中,并希望它只会捕获其 Close() 事件,但不幸的是它捕获了所有 Close() 事件。

如何在窗口之间分开以独立处理事件?

问候拉里莫

4

1 回答 1

1

使用sender参数,这就是它的用途:

window1.Closing += Window_Closing;
window2.Closing += Window_Closing;

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    var w = (Window)sender;

    // Simple ref test to illustrate, but you can use anything else you want instead
    if (w == window1) {
        e.Cancel = true;
        w.Hide();
    }
}
于 2012-07-11T11:17:28.350 回答