2010-06-17 43 views
1

我正在考慮編寫一個WPF程序,該程序在應用程序啓動時需要登錄名和密碼。 我曾想過使用兩個文本框作爲登錄表單的小表單。用戶將不得不填寫他的詳細信息,然後應用程序的主要形式將被解鎖。 你將如何解決這個問題?當主窗體「鎖定」時顯示小窗體

謝謝您的回答,daemonsvk

+0

你目前有什麼代碼?這聽起來很像一個csc 102作業分配 – Woot4Moo 2010-06-17 17:30:58

+0

窗口「鎖定」下面窗口的標準術語是「模式」,如在「打開模式對話框」中。相反是無模式的。 – Jacob 2010-06-17 17:33:55

回答

2

這是Window.ShowDialog()調用標準行爲。其他窗口將被禁用。

0

我會首次啓動您的登錄頁面並驗證用戶,如果他們的詳細信息是正確的,請隱藏登錄表單並向您顯示其他表單。

if(user is authed) 
{ 
    this.Hide(); //Hide the login form 
    mainAppForm.Show(); //or Form.ShowDialog(); //Shows the main form 
} 
0

做到這一點的最簡單的方式是首先顯示(使用ShowDialog,哪些塊即等待直到形式正在繼續的下一行代碼之前關閉)登錄表單。如果登錄成功,則處理登錄表單,然後顯示主表單;如果登錄失敗,則結束應用程序。

但是,如果您希望您的主表單在登錄表單下方可見(一個不合理的要求),那麼您需要先顯示主表單,然後從方法顯示登錄表單(模態地)主要形式。在WinForms中,這需要一些破解,因爲無法從主窗體的構造函數或其Load事件中顯示登錄窗體(因爲當登錄窗體出現時,主窗體將不可見)。

WPF現在可以處理這個更好。