1. ホーム
  2. c#

[解決済み] ウィンドウズフォームが既に開かれているかどうかを確認し、開かれている場合は閉じるには?

2023-04-29 10:59:55

質問

あるフォーム fm" というフォームがあり、これは10分ごとに開く簡単な情報ウィンドウです ( fm.Show(); ).

10分ごとに、フォームがかチェックするようにするにはどうしたらよいでしょうか。 "fm" が開いているかどうかをチェックし、もし開いていたら閉じてまた開くようにするにはどうしたらいいですか!

これで、フォーム fm は常に form fm = new form();

で作成されるので、フォームが開いているかどうかをチェックしようとすると、前に1つのフォームがあったとしても、常にfalseになって新しいウィンドウを開いてしまいます!

ユニークなIDを与えて、ユニークなIDを持つこのフォームが開かれたかどうかをチェックするツールが必要なのです!

フォーム(fm)のデータをただ更新するのではなく、ボタン付きの複雑な情報があるため、更新したいのですが。

フォーム名は "UpdateWindow"

ありがとうございます。

どのように解決するのですか?

たぶん、これが役に立つでしょう。

FormCollection fc = Application.OpenForms;

foreach (Form frm in fc)
{
//iterate through
     if (frm.Name == "YourFormName")
     {
         bFormNameOpen = true;
     }
}

foreachの中に、特定のフォームを検出するコードをいくつか入れれば、できるかもしれません。未検証ですが。

で見つかった http://bytes.com/topic/c-sharp/answers/591308-iterating-all-open-forms