0

ログインシステムを備えたC#アプリケーションがありますが、正常に動作していますが、ユーザーがログアウトして再度ログインできるようにして、メインフォームのメニューの可視性がここで変更されるようにする必要があります。ログイン フォーム、メイン フォーム、およびエンド ユーザー クラスがあります。

メインフォームは、ロード時にプログラムによって最初に実行され、ログインフォームを表示します。

ログインコードで。ユーザー名とパスワードをエンド ユーザー クラスに渡し、適切な loginsuccess をチェックします。

public partial class Login : Form
{
   private void cmdlogin_Click(object sender, EventArgs e)
    {
        if (IsEmpty())
        {
            MessageBox.Show("Please enter username/password.");
            TxtFocus();
        }
        else
        {
            EndUser.LogIn(txtusername.Text, txtpassword.Text);
            if (EndUser.LogInSucces)
            {

            }
            else
            {

            }
        }
    }
}

エンド ユーザー クラスでは、データベースへの接続を開き、ユーザー名とパスワードが利用可能かどうかを検索し、プロパティ loginsuccess を true に変更し、ロール プロパティを列挙型から適切なものに変更します。

その後、ログインフォームが閉じてメインフォームが表示されます。メインフォームはユーザーの役割を確認し、メニューの可視性を設定します。

public partial class Form1 : Form
{
     public Form1()
    {
        InitializeComponent();
        Login loginFrm = new Login();
        loginFrm.ShowDialog();
        this.IsMdiContainer = true;            
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        if (EndUser.LogInSucces) {
            switch (EndUser.GetRole())
            {
                case EndUser.Role.Principal:
                    PrincipalSettings();
                    break;
                case EndUser.Role.Admission:
                    AdmissionSettings();
                    break;
                case EndUser.Role.Registrar:
                    RegistrarSettings();
                    break;
                case EndUser.Role.Faculty:
                    FacultySettings();
                    break;
            }
        }
    }

 #region menus visibility

コマンド application.restart() を使用してアプリケーションを再起動しようとしましたが、これはログイン フローを開始するためですが、プログラムで何かを実行してからログアウトするとエラーが発生するので良くありません。これを行う上でアドバイスをいただけますか?

4

0 に答える 0