经过一些更改后,我的应用程序开始出现意外行为:登录表单显示为
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枚举的值设置对话框的值框结果,隐藏模式对话框,然后返回对调用表单的控制