Symbol MC50でCompact Framework 3.5を使用しています。Sub Mainの外で呼び出されたときにApplication.Run(New myForm())が動作しない
私のSub Mainでは、まずデータベースが存在するかどうかを確認します。私はfrmMain閉じたときに、予想通り、それはアプリケーションを終了し、これは、すべてが正常に動作し
Dim login As frmLogin = New frmLogin()
If login.ShowDialog() = DialogResult.OK Then
Application.Run(New frmMain())
End If
をして:それがない場合は、次のコードを使用してログイン画面が表示されます。
しかし、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を閉じたとき、サブメインのコードの残りの部分は、このようにApplication.Runがヒットしなかっされなかった、実行されなかったことです。
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が実際に負荷を行います。
だからfrmUpdateData上の[閉じる]ボタンのクリックイベントに私は、次のコードを追加しました。しかし、右上の閉じるボタンをクリックしても何も起こらず、イベントは発生しません。 Windowsイベントが発生していないかのように。どうしたのですか?
これが役立つかどうかはわかりませんが、 Application.Runは、ShowDialogを呼び出すのではなく、frmLoginおよびfrmUpdateDataフォームを表示します。アプリケーションメッセージループに参加していないときに、.NETがダイアログやメッセージボックスを表示するのにどれだけの時間がかかりますか分かりません。 –