ホームページ > バックエンド開発 > C++ > C# で新しいフォームを適切に開き、現在のフォームを閉じるにはどうすればよいですか?

C# で新しいフォームを適切に開き、現在のフォームを閉じるにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-06 13:17:39
オリジナル
709 人が閲覧しました

How to Properly Open a New Form and Close the Current Form in C#?

C# で新しいフォームを開いて現在のフォームを閉じる方法

C# アプリケーションを開発するとき、次の操作が必要な状況に遭遇することがあります。現在のフォームのボタンから新しいフォームを開き、現在のフォームを閉じて、新しく開いたフォームにフォーカスします。これを実現する方法は次のとおりです。

Steve の解決策

一般的なアプローチの 1 つは、次のコードを使用することです。

private void Button1_Click(object sender, EventArgs e)
{
    var form2 = new Form2();
    form2.Show();
    this.Close();
}
ログイン後にコピー

ただし、この解決策は欠陥があります。 this.Close() が呼び出されると、現在のフォームと新しく開かれたフォーム (form2) の両方が破棄されます。これを防ぐには、現在のフォームを閉じるのではなく、非表示にすることを検討してください。

修正された解決策

新しいフォームを開いて現在のフォームを閉じるには、次のコマンドを使用します。コード:

private void OnButton1Click(object sender, EventArgs e)
{
    this.Hide();
    var form2 = new Form2();
    form2.Closed += (s, args) => this.Close();
    form2.Show();
}
ログイン後にコピー

これを修正しました解決策:

  • this.Hide() は現在のフォームを非表示にします。
  • 新しい Form2 インスタンス (form2) が作成され、表示されます。
  • イベント ハンドラーが追加されますform2のClosedイベントに。このイベント ハンドラーは、form2 が閉じられるときに this.Close() を呼び出し、新しいフォームが閉じられた後にのみ現在のフォームが閉じられるようにします。

このアプローチにより、新しいフォーム (Form2) が開いていることが保証されます。現在のフォーム (Form1) は非表示になり、その後閉じられます。

以上がC# で新しいフォームを適切に開き、現在のフォームを閉じるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート