モーダルダイアログウィンドウでエラーが発生したときにメッセージボックスを表示しようとしていますが、何らかの理由でMessageBox.Showメソッドがヒットしていることがわかっています。 try catchブロックは、モーダルダイアログとして表示されているウィンドウフォームのイベントハンドラの内部にあります。私は、イベントが発生していることを知っているとエラーがキャッチされているが、メッセージボックスは決して開きません。私はMessageBox.Showを別のフォームショーに置き換えました。うまくいきましたが、独自のエラーフォームを作成する代わりにMessageBoxを使用したいと思います。私はMessageBoxを動作させることができないようです。これはMessageBoxの制限ですか?ここで メッセージボックスがモーダルダイアログウィンドウから表示されない
は私がやっているものの簡易版である:Private Sub OnSomeEvent(ByVal args As MyEventArgs)
Try
'some processing
Catch ex As Exception
ShowMessage("An error has occurred")
End Try
End Sub
Private Delegate Sub _showMessage(ByVal message As String)
Private Sub ShowMessage(ByVal message As String)
If Me.InvokeRequired Then
Me.Invoke(New _showMessage(AddressOf ShowMessage), message)
Else
MessageBox.Show(message, "ERROR")
'also tried MessageBox.Show(Me, message) but no luck
End If
End Sub
*サイドノート:この場合、私はShowMessageのInvokeRequiredセクションは必要ありませんが、私は何とかその場合には(完全性のためにそれを左問題を引き起こしている可能性があります)。私はそれがバックグラウンドスレッドから呼び出されたときに、他の場合にそれを持っています。この特定のインスタンスでは、デバッグ時にElseブランチを通過します。
メッセージボックスがダイアログの下に表示される可能性はありますか? –
それは論理的な答えのようですが、私はそう信じません。私は画面上にダイアログを移動しましたが、現場にはまだMessageBoxはありません。タスクバーのウィンドウとしても表示されません。 – TKTS