感谢所有努力回答我的问题的人。
我正在使用WinForms C#,在MainForm_Load上,我正在为用户调用Login表单。 Login窗体包含X按钮(右上角的默认按钮)和Login按钮。
现在...
如果用户决定点击X按钮,则会关闭登录表单,MainForm也应该关闭,我知道该怎么做。但是......如果用户点击LoginButton,LoginForm应该关闭,但MainForm应该保持打开状态。
有什么想法吗?
答案 0 :(得分:5)
假设您使用ShowDialog
来显示登录表单,那么您可以这样做:
if(LoginForm.ShowDialog() == DialogResult.OK)
{
//login ok
}
您的登录表单应该在关闭之前将DialogResult设置为OK,但仅限于成功登录,如下所示:
if(LoginSuccess){
this.DialogResult = DialogResult.OK;//this will also close the form
}
答案 1 :(得分:3)
您可以在e.CloseReason
活动中查看Form.FormClosing
!
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
如果单击X或用户按下Alt + F4,CloseReason将为UserClosing。
答案 2 :(得分:2)
这是另一种选择:
您可以通过将登录表单的 ControlBox 属性设置为 False
来禁用登录表单中的X按钮答案 3 :(得分:0)
在“登录”按钮的单击事件处理程序中,添加对this.Close()
的调用这应该关闭Login表单,而不会影响Main表单。