2013-05-21 54 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键

相关问题