0

ログインフォームとメインフォームを備えた WinForms アプリケーションがあります。ログイン フォームには、ユーザーが資格情報を入力するための 2 つのテキスト ボックス、[OK] ボタン、および [キャンセル] ボタンが含まれています。次のコードは、[OK] ボタンのイベント ハンドラーです。

        private void button_OK_Click(object sender, EventArgs e)
        {
            if (authenticated())
            {
                this.Close();
                Application.Run(new MainWindow());
            }
            else
            {
                MessageBox.Show("Incorrect credentials", "Retail POS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }    
        }

これの問題は、メイン フォームが開いたときにログイン ダイアログが表示されることです。ShowDialog()から呼び出してログインフォームをモーダルダイアログとして表示することで、目的の動作を達成しようとしましたProgram.csが、これは目的の動作を達成していません。

メインフォームにはログアウトするオプションがあることに注意してください。つまり、メイン フォームを削除し、ログイン フォームを再度表示する必要があります。

Program.cs コード:

static void Main()
{
    LoginForm loginForm = new LoginForm();
    loginForm.ShowDialog();
}

これにより、2 番目のメッセージ ループを開始できないというエラーが発生します。

4

1 に答える 1