1. 程式人生 > WINDOWS開發 >C# Winform中實現主視窗開啟登入視窗關閉的方法

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