0

感谢所有努力回答我问题的人。

我正在使用 WinForms C#,在 MainForm_Load 上,我正在为用户调用登录表单。登录表单包含 X 按钮(右上角的默认按钮)和登录按钮。

现在...

如果用户决定单击 X 按钮,登录表单将关闭,MainForm 也应该关闭,我知道该怎么做。但是...如果用户单击 LoginButton,LoginForm 应该关闭,但 MainForm 应该保持打开状态。

知道怎么做吗?

4

4 回答 4

5

假设您正在使用ShowDialog显示登录表单,那么您可以这样做:

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

您的登录表单应在关闭之前将 DialogResult 设置为 OK,但仅用于成功登录,如下所示:

if(LoginSuccess){
    this.DialogResult = DialogResult.OK;//this will also close the form
}
于 2013-05-21T12:20:41.087 回答
3

您可以e.CloseReasonForm.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

于 2013-05-21T12:19:29.517 回答
2

这是另一种选择:

您可以通过将登录表单的ControlBox属性设置为False来禁用登录表单中的 X 按钮

于 2013-05-21T12:25:08.940 回答
0

在登录按钮的单击事件处理程序上,添加对 this.Close() 的调用

这应该关闭登录表单,而不影响主表单。

于 2013-05-21T12:21:57.987 回答