2011-01-18 4 views
0

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

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

Помощь?

ответ

1

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

Edit: два примера того, как это сделать:
Часто вы хотели бы открыть подтверждение-диалог, когда окно закрывается, так что вы хотите создать в Закрытия обработки события, как это:

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

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

+0

Не могли бы вы пояснить, что еще немного? – CodeMouse92

+0

Обновлен мой ответ примерами. (на самом деле вы тот, кто должен уточнять) –

+0

Собственно, это именно то, что мне нужно. Я забыл, что я могу получить результаты из пользовательских диалогов. Благодарю вас, и Бог благословит! – CodeMouse92

Смежные вопросы