in-luckyと同じように、最良の選択肢はShowDialog
です。ただし、モーダルダイアログにしたくない場合は、Application.Current.Windows
を入力すると、アプリケーションの開いているフォームのリストが表示されます。次に、フォームにコードが表示される前に、フォームがリストにあるかどうかを確認します。このような何か:また
if(Application.Current.Windows.OfType<Window>()
.Where(x => x.Name == "myPopUpName").FirstOrDefault() == null){
PopUp myPopUp = new PopUp();
myPopUp.show();
}
、フォームの名前をハードコーディングしたくない場合、あなたはこのようにそれを行うことができます。
PopUp myPopUp = new PopUp();
if(Application.Current.Windows.OfType<Window>()
.Where(x => x.Name == myPopUp.Name).FirstOrDefault() == null){
myPopUp.show();
}
しかし、それはA作成されるため、これはいくつかのリソースを浪費フォームの新しいコピーを作成し、すでに開いている場合はそれを破棄します。
あなたが使っているものをGUI APIを教えます。明らかな答えは、ウィンドウがすでに開いているかどうかを追跡する変数を保持し、再びオープンしないことです。その変数は単にウィンドウへの参照であっても簡単に起動できます。私はあなたが尋ねたい質問は既にStack Overflowで答えられていると確信していますが、あなたが投稿した質問はあまりにも曖昧で、重複する質問が正しいかどうかを知ることさえできません。 –
私はインターネットを検索し、私の質問に対する答えを見つけることができませんでした。私はこれに新しいので、私の質問が曖昧だった場合はごめんなさい、私はこれを私の将来の質問で考えるでしょう – Anna
また、あなたは、最初にボタンを無効にすることができますポップアップ。 –