C# でログインからメイン フォームに正常に移行しました
マルチフォーム C# アプリケーションの一般的な課題は、アプリケーションを途中で終了せずに、ログイン フォームからメイン アプリケーション フォームにスムーズに移行することです。 この問題は、ログイン フォームがアプリケーションの主要なメッセージ ポンプとして機能することが多いために発生します。誤って閉じるとアプリケーションのメッセージ ループが終了し、メイン フォームが表示されなくなります。
これを解決する鍵は、ログイン フォームで制御させるのではなく、Program.cs
ファイルからアプリケーションのライフサイクルを管理することです。 これには、ログイン フォームをモーダル ダイアログとして表示することが含まれます。 モーダル ダイアログは別のメッセージ ループ内で動作するため、ダイアログを閉じてもメイン アプリケーションのループには影響しません。 アプリケーションの状態は、ログイン フォームの DialogResult
.
解決策は次のとおりです:
<code class="language-csharp">static void Main() { LoginForm loginForm = new LoginForm(); if (loginForm.ShowDialog() == DialogResult.OK) { Application.Run(new MainForm()); } else { Application.Exit(); } }</code>
この改訂された Main
メソッドは、アプリケーションのフローを処理します。ログインフォームはモーダル (ShowDialog()
) で表示されます。 ログインが成功した場合 (DialogResult.OK
)、メイン フォームは Application.Run()
を使用して起動されます。 それ以外の場合、Application.Exit()
はアプリケーションを正常に閉じます。 これにより、ログイン フォームがメイン アプリケーションへの制御されたエントリ ポイントとして機能することが保証されます。
以上がC# ログイン フォームを閉じてもアプリケーションが終了しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。