ホームページ >バックエンド開発 >C++ >Windows フォーム アプリケーションでログインに成功した後、アプリを閉じずにメイン フォームを表示するにはどうすればよいですか?

Windows フォーム アプリケーションでログインに成功した後、アプリを閉じずにメイン フォームを表示するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-10 07:01:44204ブラウズ

How to Show the Main Form After Successful Login in a Windows Forms Application Without Closing the App?

ログインに成功した後、アプリケーションを終了せずにメイン フォームを表示します

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。