对通过ShowDialog()显示的窗体具有DialogResult关闭效果的设置



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

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属性的值会关闭对话框?

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

Me.DialogResult = Windows.Forms.DialogResult.None

每隔一个设置就会关闭窗体。

在表单类中,您可以阅读DialogResult属性

如果表单显示为对话框,则使用DialogResult枚举的值设置对话框的值框结果,隐藏模式对话框,然后返回对调用表单的控制

相关内容

  • 没有找到相关文章

最新更新