Windows 消息框未从模式对话框窗口显示

Windows 消息框未从模式对话框窗口显示,windows,vb.net,modal-dialog,messagebox,Windows,Vb.net,Modal Dialog,Messagebox,当模式对话框窗口中出现错误时,我试图显示一个消息框,但由于某些原因,消息框从未显示,尽管我知道MessageBox.show方法正在被点击。try-catch块位于显示为模式对话框的windows窗体的事件处理程序内部。我知道事件正在被触发,错误正在被捕获,但消息框从未打开。我已经用另一个表单Show替换了MessageBox.Show,它可以正常工作,但我宁愿使用MessageBox,而不是创建自己的错误表单。我似乎无法让MessageBox正常工作。这是MessageBox的限制吗 以下是我

当模式对话框窗口中出现错误时,我试图显示一个消息框,但由于某些原因,消息框从未显示,尽管我知道MessageBox.show方法正在被点击。try-catch块位于显示为模式对话框的windows窗体的事件处理程序内部。我知道事件正在被触发,错误正在被捕获,但消息框从未打开。我已经用另一个表单Show替换了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的invokererequired部分,但为了完整起见,我保留了它(以防可能导致问题)。在其他情况下,当它是从后台线程调用时,我有它。在调试时的这个特定实例中,它通过Else分支。

检查主线程是否被阻止执行其他任务。然后,
Me.Invoke(New\u showMessage(AddressOf showMessage),message)
上的呼叫将被阻止,您将不会看到MessageBox


如果在
MessageBox.Show(message,“ERROR”)
处放置断点会发生什么情况?

是否有可能消息框出现在对话框下?虽然这似乎是合乎逻辑的答案,但我不相信。我已经将对话框移到了整个屏幕上,但在站点中仍然没有消息框。它也不会在任务栏中显示为窗口。