我在 Symbol MC50 上使用 Compact Framework 3.5。
在我的 Sub Main 中,它首先检查数据库是否存在。如果是这样,它将使用以下代码显示登录屏幕:
Dim login As frmLogin = New frmLogin()
If login.ShowDialog() = DialogResult.OK Then
Application.Run(New frmMain())
End If
这一切正常,当我关闭 frmMain 时,它会按预期退出应用程序。
但是,如果 Sub Main 中的数据库检查失败,我会调用另一个表单的 ShowDialog() 方法,该表单用于从实时服务器创建和填充数据库。这是调用此表单的代码:
If Not File.Exists(SETTINGS_LOCALDB) Then
databaseExists = False
MessageBox.Show("Local DB does not exist. The database must be created before using the application.")
Dim update As frmUpdateData = New frmUpdateData()
update.ShowDialog()
Else
.....
End If
我遇到的第一个问题是,当 frmUpdateData 关闭时,Sub Main 中的其余代码没有执行,因此 Application.Run 从未被命中。
因此,在 frmUpdateData 上关闭按钮的单击事件中,我添加了以下代码:
If SystemUserSecurityId() = Nothing Then
Dim login As frmLogin = New frmLogin()
If login.ShowDialog() = DialogResult.OK Then
DebugTrace("Init - login complete, starting application.")
Application.Run(New frmMain())
End If
End If
Me.Hide()
所有这些代码都被命中并且 frmMain 确实加载了。但是,当我单击右上角的关闭按钮时,没有任何反应,也没有发生任何事件。就好像 Windows 事件没有发生一样。
我做错了什么?