簡體   English   中英

Loop C#中的父窗體和子窗體

[英]Parent form and Child form in Loop C#

我正在嘗試為我的工具創建一個登錄名並對其進行了排序,但是當他們按下登錄名(子表單)時,程序會循環並要求用戶再次登錄。 我注意到當我按下“退出”按鈕時,它會很好地加載父表單,但我不想要那樣。 我希望我的用戶按登錄,然后直接轉到父表單。 要在 Form1_Load 中的父表單之前打開子表單,我有這個:

        Login Log = new Login();
        Log.ShowDialog();

在子表單上的“登錄”按鈕內,我有這個:

        this.Hide();
        Form1 Main = new Form1();
        Main.Show();

處理此問題的最佳方法是在表單啟動之前處理登錄(例如在 Program.cs 中,但在應用程序初始化之后)。 在您的登錄表單中插入一個變量(例如,一個顯示他們是否通過您的授權測試的布爾值)並在表單關閉后檢查授權狀態。 如果該標志設置為 false,那么您可以執行 return 或 Application.Exit() 並且用戶將永遠不會看到主窗體。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        SomeLoginForm Login = new SomeLoginForm();
        Login.ShowDialog();
        if (!Login.HasPassedAuthorization)
        {
            MessageBox.Show("Sorry you failed to pass the test! I'm kicking you out now!");
            Application.Exit(); // or do a "return;"
        }

        Application.Run(new Form1());
    }
}


static class SomeLoginForm()
{
        internal bool HasPassedAuthorization;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM