Как закрыть неизвестное окно - PullRequest
0 голосов
/ 18 января 2011

все ,, у меня есть проект, который встроен в VB.Net 2010 и WPF 4. У меня есть возможность вернуться к экрану входа, но эта опция доступна только из отдельного окна (подтверждение выхода) , Эту функцию можно вызвать, когда одно из примерно ста окон открыто за окном подтверждения выхода.

Что я хочу сделать, так это закрыть окно подтверждения выхода и другое окно, которое открыто, но открыть окно входа. Я знаю, как использовать «Me.Close ()», чтобы закрыть окно подтверждения выхода, и я знаю, как открыть окно входа, но я не знаю, как закрыть другое открытое окно.

Помощь

1 Ответ

1 голос
/ 18 января 2011

Не могли бы вы дать конструктору окна подтверждения выхода ссылку на окно, которое он должен закрыть при выборе этой опции?

Редактировать: два примера того, как это сделать:
Часто вы хотите открыть диалоговое окно подтверждения, когда окно закрывается, поэтому вы должны создать его в обработчике событий закрытия следующим образом:

    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();
}

или что-то в этом роде. В качестве альтернативы вы также можете работать с событиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...