感谢所有努力回答我的问题的人。如何知道用户是否点击了表格中的X
我正在使用WinForms C#,并在MainForm_Load上为用户调用Login窗体。登录表单包含X按钮(右上角的默认按钮)和Login按钮。
现在...
如果用户决定点击X按钮登录窗体关闭,所以应该在MainForm的,我知道该怎么做。但是...如果用户点击LoginButton,LoginForm应该关闭,但MainForm应该保持打开状态。
任何想法hwo要做到这一点?
感谢所有努力回答我的问题的人。如何知道用户是否点击了表格中的X
我正在使用WinForms C#,并在MainForm_Load上为用户调用Login窗体。登录表单包含X按钮(右上角的默认按钮)和Login按钮。
现在...
如果用户决定点击X按钮登录窗体关闭,所以应该在MainForm的,我知道该怎么做。但是...如果用户点击LoginButton,LoginForm应该关闭,但MainForm应该保持打开状态。
任何想法hwo要做到这一点?
您可以在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。
假设你正在使用ShowDialog
显示登录表单,那么你可以这样做:
if(LoginForm.ShowDialog() == DialogResult.OK)
{
//login ok
}
它关闭之前,你的登录表单应该设置DialogResult的就OK了,但只有成功登录,就像这样:
if(LoginSuccess){
this.DialogResult = DialogResult.OK;//this will also close the form
}
您不需要Close()调用;设置DialogResult会自动隐藏表单并将执行返回到ShowDialog()行。 –
@Idle_Mind:呃......从来不知道。我不喜欢它,但不是我想要设置一个属性的行为 – musefan
上的登录按钮的单击事件处理程序,添加到this.Close()
电话本应该关闭登录形式,在不影响主要形式。
这是另一种选择:
您可以通过设置登录表单的控制框财产登录表单禁用X键假
_How_你展示登录表单? –