C# Winform中實現主窗口打開登錄窗口關閉的方法


這篇文章主要介紹了C# Winform中實現主窗口打開登錄窗口關閉的方法,這在需要用戶名密碼的軟件項目中是必用的一個技巧,要的朋友可以參考下在使用C#進行Winform編程時,我們經常需要使用一個登錄框來進行登錄,一旦輸入的用戶名密碼登錄成功,這時登錄窗口應該關閉,而且同時打開主程序窗口。該如何來實現呢?

乍一想,很簡單啊,打開主窗口就用主窗口的Show()方法,而關閉登錄窗口就用登錄窗口的Close()方法即可。即代碼如下:

Program.cs中代碼:

Application.Run(new FormLogin());

登錄窗口(FormLogin)代碼:

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "a") {  //驗證用戶名密碼
        FormMain fm = New FormMain();
        fm.Show(); //打開主窗口
        this.Close();    //關閉登錄窗口
    }
}

事實證明,這種辦法是行不通的。因為主窗口是由登錄窗口打開的,所以我們在關閉登錄窗口時,主窗口也會被一起關閉。這是一個線程樹,或者窗口樹的關系,即一個窗口關閉時,由它打開的新窗口都將被關閉。

那么應該怎么解決呢?經過小編鑒定,網上有這樣一種解決辦法是很不錯的。

Program.cs中代碼:

FormLogin fl = new FormLogin();
fl.ShowDialog();
if (fl.DialogResult == DialogResult.OK)
{
    Application.Run(new FormMain());
}
else
{
    return;
}

即先將登錄窗口作為一個對話框打開,如果這個對話框返回一個DialogResult.OK的值,那么就表示登錄驗證成功了,於是打開主窗體。如果驗證失敗,則程序結束、退出。

在登錄窗體(FormLoin)中代碼:

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "aaa") {  //驗證用戶名密碼成功
        this.DialogResult = DialogResult.OK;    //返回一個登錄成功的對話框狀態
        this.Close();    //關閉登錄窗口
    }
}

這個方法不錯,大家可以試試。

關於Winform如何實現主窗口打開時登錄窗口關閉,本文就介紹這么多,希望對您有所幫助,謝謝!

轉自:https://blog.csdn.net/lgqlovexl/article/details/52539290


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM