我有一个简短的问题,甚至在网上搜索一段时间后我还没有找到答案。 我在WPF应用程序中有两个窗口。当用户关闭窗口时,应该隐藏一个窗口。当主窗口关闭时,完整的应用程序将关闭。
我用过
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
Hide();
}
在第二个窗口的类中,希望它只捕获它的Close()事件,但不幸的是它会捕获所有的Close()事件。
如何在窗口之间分开以独立处理事件?
此致 拉里莫
答案 0 :(得分: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();
}
}