在成功登入後顯示主視窗而不登出應用程式
在 Windows 窗體應用程式中,關閉主窗體通常會終止程式。但是,在某些情況下,您可能需要關閉登入窗體並在不結束應用程式的情況下啟動主窗體。本文探討了這個問題並提供了解決方案。
問題:
使用者建立了一個包含兩個窗體的 Windows 窗體項目:登入窗體和主窗體。成功登入後,目標是關閉登入窗體並顯示主窗體。但是,使用 Close() 方法關閉登入窗體不會開啟主窗體,且應用程式會終止。
<code class="language-c#">public void ShowMain() { if (auth()) { var main = new Main(); main.Show(); this.Close(); } else { MessageBox.Show("Invalid login details."); } }</code>
解:
問題在於關閉登入窗體也會關閉應用程式。解決方案包括將登入邏輯從登入窗體移至 Program.cs 檔案。然後,透過使用 Application.Run() 在成功登入後啟動主窗體。
<code class="language-c#">static void Main() { LoginForm fLogin = new LoginForm(); if (fLogin.ShowDialog() == DialogResult.OK) { Application.Run(new MainForm()); } else { Application.Exit(); } }</code>
在 Program.cs 中,建立並顯示一個模態登入窗體 (fLogin) 作為對話方塊。如果使用者提供有效的憑證,ShowDialog() 將傳回 DialogResult.OK,從而觸發透過 Application.Run() 建立新的 MainForm 實例。否則,應用程式將退出 (Application.Exit())。
以上是如何在Windows窗體應用程式中成功登入後顯示主窗體而不關閉應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!