鑑於

2011-11-10 79 views
1

我使用Windows使用C#窗體應用程序製作一個對話框的住宿。我創建了一個對話框,要求用戶輸入用戶名和密碼等登錄信息。使用If-else語句,如果登錄詳細信息匹配,則會顯示一個消息框,指出「成功」,並自動關閉對話框。這可以。但是,如果我錯了輸入登錄信息,我做出一個消息框出現在else語句,指出「錯誤的詳細信息進入」。但是,當我關閉該消息框時,對話框消失。我不希望發生這種情況。我希望對話框保持在視圖中,以便用戶再次輸入正確的細節。是否有一些代碼需要輸入,以避免關閉對話框?鑑於

+0

添加你的代碼在這裏,以便我們能夠@Allan它的一個大項目碼金額約1000 lines..Its很難隔離開來......這就是爲什麼我獨自定義我的問題就來看看 –

+0

。 –

回答

2

我會建議你創建一個新的窗體,然後顯示它的對話框:

1)創建新的形式
2)表中設置MinimizeButton假
3)設置表格的MaximizeButton假
4)加入組分:1個文本字段,2×按鈕(OK按鈕,取消按鈕)
5)確定按鈕的設置的DialogResult到:OK
6)設置的DialogResult的取消按鈕:取消
7)添加的公共方法:public string GetText(){return textbox.te xt};
8)文本框

設置密碼字符在您的主要形式有:

var dialogForm = new MyNewForm(); 
if (dialogForm.ShowDialog() != DialogResult.OK) 
{ 
    Application.Exit() 
} 
else 
{ 
    var pw = dialogForm.GetText(); // string var pw stores the enterd pw now 
    // validate your password here 

    if (PasswordIsCorrect()) 
    { 
     // some logic here 
    } 
} 

如果你想在一個循環中顯示的對話框中,將「如果(dialogForm.ShowDialog()......」用「而...」

注意:代碼untestet
注意2:請確保您的驗證邏輯是安全經驗的用戶可以反編譯你的應用程序獲取驗證邏輯

希望幫助?親切的問候

+1

感謝ü這麼多 –

+0

沒有問題:-)請檢查我的最新編輯:如果你想在一個循環中顯示的對話框中,將「如果(dialogForm.ShowDialog()......」有「而...」 – Grrbrr404

0

檢查的FormClosing事件,並檢查事件。編寫一些代碼來檢查事件,並在表單中包含的按鈕之外的其他任何東西時停止表單的關閉。