我有一個登錄表單後,我驗證用戶我打電話的主要形式有以下代碼:隱藏子窗體關閉它,而不是,並返回我的主人C#
frmMain frm = new frmMain();
Hide()
frm.ShowDialog();
Show();
問題是,當我嘗試使用Hide()或Visible = false隱藏主窗體,爲了將應用程序最小化到托盤欄,主窗體關閉,應用程序將我返回到登錄窗體,就像按下關閉按鈕一樣。
Hide()
和Show()
如何工作?它是否創建另一個實例?
我有一個登錄表單後,我驗證用戶我打電話的主要形式有以下代碼:隱藏子窗體關閉它,而不是,並返回我的主人C#
frmMain frm = new frmMain();
Hide()
frm.ShowDialog();
Show();
問題是,當我嘗試使用Hide()或Visible = false隱藏主窗體,爲了將應用程序最小化到托盤欄,主窗體關閉,應用程序將我返回到登錄窗體,就像按下關閉按鈕一樣。
Hide()
和Show()
如何工作?它是否創建另一個實例?
當模態窗體被隱藏時,它將返回到調用代碼。這就是來龍去脈。我會做的就是改變代碼顯示的主要形式後,要麼關閉登錄表單:
frmMain frm = new frmMain();
frm.Show();
Close()
如果你想在主窗體關閉再次顯示登錄表單,您可以使用FormClosing
事件,像這樣:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
frmLogin frmlogin= new frmLogin();
frmlogin.Show();
}
或者在開始時調用主窗體,並從它調用登錄窗體作爲對話框。
提出兩個窗口的形式,1: - 登錄(默認開啓),2: - 主(開放在登錄成功)
1: - 首先登錄窗口將打開 2: - 在成功登錄關閉/隱藏登錄表單並打開/顯示主窗體,這也將是窗口。 3: - 以相同的方式處理任務欄顯示屬性。
您可以先顯示登錄表單:'formLogin.ShowDialog();'然後'mainForm.ShowDialog();'而不是使用可見性播放。否則,您的問題並不完整:您如何將**應用程序**最小化到托盤欄,您如何恢復,發生了什麼以及您期望發生什麼?說明*「主窗體關閉並且應用程序將我返回到登錄窗體,就像我按下關閉按鈕」*不能清楚地解釋問題。 – Sinatr
隱藏對話框將始終關閉它。您必須改用Show()。考慮使用主窗體的FormClosing事件使其再次可見。 –