c#-Windowsフォームアプリケーションで複数のフォームを閉じる方法

Visual Studio 2015でWindowsフォームアプリケーションを使用しています。現在の要件は、ボタンクリックで複数のWindowsフォームを閉じることです。

注:以下のリンクを参照しました

closing-multiple-forms-in-c-sharp

How-to-Connect-forms-in-Csharp-windows-application

How to swap between forms in windows forms application

以下の画像を確認してください。

画像-1
enter image description here

画像-2
enter image description here

画像-3
enter image description here

画像-4
enter image description here

ベストアンサー
最初のフォームの別のインスタンスを作成して非表示にしているため、現在開いている最初のフォームは非表示になりません。

開いているインスタンスを非表示にする必要があります。これを行うには、Application.OpenFormsを使用して検索できます。

var first = Application.OpenForms.OfType<FirstForm>().FirstOrDefault();
if (first != null)
    first.Hide();

また、Programクラスの最初のフォームへの参照を保持し、その参照を使用して、非表示または再表示することもできます。

Application.OpenFormsは表示可能なフォームを返します。フォームを非表示にすると、そのフォームはコレクションに表示されなくなります。

転載記事の出典を記入してください: c#-Windowsフォームアプリケーションで複数のフォームを閉じる方法 - コードログ