2013-05-21 94 views
0

感謝所有努力回答我的問題的人。如何知道用戶是否點擊了表格中的X

我正在使用WinForms C#,並在MainForm_Load上爲用戶調用Login窗體。登錄表單包含X按鈕(右上角的默認按鈕)和Login按鈕。

現在...

如果用戶決定點擊X按鈕登錄窗體關閉,所以應該在MainForm的,我知道該怎麼做。但是...如果用戶點擊LoginButton,LoginForm應該關閉,但MainForm應該保持打開狀態。

任何想法hwo要做到這一點?

+1

_How_你展示登錄表單? –

回答

3

您可以在Form.FormClosing活動中檢查e.CloseReason!如果X被點擊或用戶按下Alt + F4

Private Sub YourForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    If e.CloseReason = CloseReason.UserClosing Then 
     'Closed by user 
     ' 
     'Do something like 
     'Application.Exit() 
     ' 
     'or close both forms 
    Else 
     'Other close reason 
    End If 
End Sub 

CloseReason將UserClosing。

5

假設你正在使用ShowDialog顯示登錄表單,那麼你可以這樣做:

if(LoginForm.ShowDialog() == DialogResult.OK) 
{ 
    //login ok 
} 

它關閉之前,你的登錄表單應該設置DialogResult的就OK了,但只有成功登錄,就像這樣:

if(LoginSuccess){ 
    this.DialogResult = DialogResult.OK;//this will also close the form 
} 
+3

您不需要Close()調用;設置DialogResult會自動隱藏表單並將執行返回到ShowDialog()行。 –

+0

@Idle_Mind:呃......從來不知道。我不喜歡它,但不是我想要設置一個屬性的行爲 – musefan

0

上的登錄按鈕的單擊事件處理程序,添加到this.Close()

電話本應該關閉登錄形式,在不影響主要形式。

2

這是另一種選擇:

您可以通過設置登錄表單的控制框財產登錄表單禁用X鍵

相關問題