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(); }
これを修正しました解決策:
このアプローチにより、新しいフォーム (Form2) が開いていることが保証されます。現在のフォーム (Form1) は非表示になり、その後閉じられます。
以上がC# で新しいフォームを適切に開き、現在のフォームを閉じるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。