1

经过一些更改,我的应用程序开始出现异常:登录表单显示为

If DialogResult.OK <> New frmLogin().ShowDialog() Then ...

包含标记为的行时会自动关闭'problem。如果我注释掉,它会保持打开状态(因为它在更改之前工作),直到我Me.Close()手动调用。

Private Sub Login_Click()
    If My.Application.appSession.ID > 0 Then
        Me.DialogResult = Windows.Forms.DialogResult.OK
        Me.Close()
    Else
        Me.DialogResult = Windows.Forms.DialogResult.Abort 'problem
        MsgBox("Invalid user name or password.", MsgBoxStyle.Critical)
    End If
End Sub

您是否观察到所描述的行为,即纯粹设置DialogResult属性值会关闭对话框?

4

1 回答 1

1

要保持表单显示,您需要以这种方式设置它

Me.DialogResult = Windows.Forms.DialogResult.None

所有其他设置都会导致表单关闭。

在表单类中,您可以阅读有关DialogResult属性的信息

如果窗体显示为对话框,则使用 DialogResult 枚举中的值设置此属性会为窗体设置对话框结果的值,隐藏模式对话框,并将控制权返回给调用窗体

于 2015-02-17T11:04:56.950 回答