ログインフォームとメインフォームを備えた 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 番目のメッセージ ループを開始できないというエラーが発生します。