是否通过ShowDialog()显示对表单的DialogResult结束效果?

时间:2015-02-17 10:56:10

标签: .net vb.net winforms modal-dialog 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属性的纯设置值会关闭对话框?

1 个答案:

答案 0 :(得分:1)

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

Me.DialogResult = Windows.Forms.DialogResult.None

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

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

的内容
  

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