2011-01-18 19 views
0

すべて私はVB.Net 2010とWPF 4でビルドされたプロジェクトを持っています。私はサインイン画面に戻るオプションがありますが、このオプションは別の(終了確認)ウィンドウ。この機能は、約100個のウィンドウのうちの1つが終了確認ウィンドウの後ろに開いているときに呼び出すことができます。未知のウィンドウを閉じるには

私がしたいのは、終了確認ウィンドウを閉じて、開いている他のウィンドウですが、サインインウィンドウを開きます。終了確認ウィンドウを閉じるために「Me.Close()」を使用することがわかっていますが、ログインウィンドウを開く方法はわかりましたが、開かれている他のウィンドウを閉じる方法はわかりません。

ヘルプ?

答えて

1

quit-confirmation-windowのコンストラクタに、そのオプションが選択されたときに閉じるべきウィンドウへの参照を渡せませんでしたか?

編集:それを行う方法の2つの例:
多くの場合、あなたは、ウィンドウが閉じているときにこのようなClosingイベントハンドラでそれを作成したいので、確認-対話を開くしたいと思います:

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

ここにあなたの窓は、それはあなたが対話自体にウィンドウに関する情報を必要としない場合であれば、(diag.Showは待たないでしょう)を返すように確認ダイアログを待ちます。あなたの対話がいつでも開かれ、それが返すことのためにあなたは待つことができないあなたが参照してそれを作成することができた場合は

ResultDialogResultブール値が十分に区別されていない場合は、あなたの対話の中で定義することができますカスタムプロパティです):

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

関連する問題