Я пытаюсь показать окно сообщения, когда в модальном диалоговом окне возникает ошибка, но по какой-то причине окно сообщения никогда не отображается, хотя я знаю, что метод 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
* примечание: в этом случае мне не нужен раздел InvokeRequired ShowMessage, ноЯ оставил это для полноты (на случай, если каким-то образом это может быть причиной проблемы).Он у меня есть для других случаев, когда он вызывается из фонового потока.В данном конкретном случае при отладке он проходит через ветку Else.