ログインに成功した後、アプリケーションを終了せずにメイン フォームを表示します
Windows フォーム アプリケーションでは、通常、メイン フォームを閉じるとプログラムが終了します。ただし、場合によっては、アプリケーションを終了せずに、ログイン フォームを閉じてメイン フォームを起動する必要がある場合があります。この記事では、この問題を調査し、解決策を提供します。
質問:
ユーザーは、ログイン フォームとメイン フォームの 2 つのフォームを含む Windows フォーム プロジェクトを作成します。ログインに成功したら、ログイン フォームを閉じてメイン フォームを表示することが目標です。ただし、Close() メソッドを使用してログイン フォームを閉じても、メイン フォームは開かず、アプリケーションは終了します。
<code class="language-c#">public void ShowMain() { if (auth()) { var main = new Main(); main.Show(); this.Close(); } else { MessageBox.Show("Invalid login details."); } }</code>
解決策:
問題は、ログインフォームを閉じるとアプリケーションも閉じられることです。この解決策には、ログイン ロジックをログイン フォームから Program.cs ファイルに移動することが含まれます。次に、ログインに成功した後、Application.Run() を使用してメイン フォームを起動します。
<code class="language-c#">static void Main() { LoginForm fLogin = new LoginForm(); if (fLogin.ShowDialog() == DialogResult.OK) { Application.Run(new MainForm()); } else { Application.Exit(); } }</code>
Program.cs で、モーダル ログイン フォーム (fLogin) を作成し、ダイアログ ボックスとして表示します。ユーザーが有効な資格情報を提供すると、ShowDialog() は DialogResult.OK を返し、Application.Run() を介して新しい MainForm インスタンスの作成をトリガーします。それ以外の場合、アプリケーションは終了します (Application.Exit())。
以上がWindows フォーム アプリケーションでログインに成功した後、アプリを閉じずにメイン フォームを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。