如何关闭未知窗口

时间:2011-01-18 00:43:29

标签: wpf vb.net

所有,我有一个在VB.Net 2010和WPF 4中构建的项目。我可以选择返回登录屏幕,但此选项只能从单独的(退出确认)窗口访问。当退出确认窗口后面打开大约一百个窗口之一时,可以调用此函数。

我想要做的是关闭退出确认窗口,打开另一个窗口,但打开登录窗口。我知道使用“Me.Close()”关闭退出确认窗口,我知道如何打开登录窗口,但我不知道如何关闭另一个打开的窗口。

帮助?

1 个答案:

答案 0 :(得分:1)

难道你不能给quit-confirmation-window的构造函数一个对它应该关闭的窗口的引用吗?

编辑:两个如何做的例子:
通常,您希望在窗口关闭时打开确认对话框,因此您可以在Closing事件处理程序中创建它,如下所示:

    private void Window_Closing(object sender, CancelEventArgs e)
    {
        ConfirmationDialog diag = new ConfirmationDialog();
        diag.ShowDialog();
        switch (diag.Result)
        {
            ...
        }
    }

在这里,您的窗口等待确认对话框返回(diag.Show不会等待),如果是这种情况,您不需要有关对话框中窗口的任何信息。 (Result是一个自定义属性,如果DialogResult bool没有足够的区别,您可以在对话框中定义

如果您的对话框在任何时候打开而您无法等待它返回,您可以使用参考创建它:

private void OpenConfirmDialog()
{
    ConfirmationDialog diag = new ConfirmationDialog(this);
    diag.Show()
}

并在对话代码中:

public ConfirmationDialog(Window owner)
{
    Owner = owner;
}

public void OpenWelcomeScreenThing()
{
    this.Close();
    Owner.Close();
    new WelcomeScreen().Show();
}

或类似的东西。或者你也可以处理事件。