Windows 消息框未从模式对话框窗口显示
当模式对话框窗口中出现错误时,我试图显示一个消息框,但由于某些原因,消息框从未显示,尽管我知道MessageBox.show方法正在被点击。try-catch块位于显示为模式对话框的windows窗体的事件处理程序内部。我知道事件正在被触发,错误正在被捕获,但消息框从未打开。我已经用另一个表单Show替换了MessageBox.Show,它可以正常工作,但我宁愿使用MessageBox,而不是创建自己的错误表单。我似乎无法让MessageBox正常工作。这是MessageBox的限制吗 以下是我所做工作的简化版本:Windows 消息框未从模式对话框窗口显示,windows,vb.net,modal-dialog,messagebox,Windows,Vb.net,Modal Dialog,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”)
处放置断点会发生什么情况?是否有可能消息框出现在对话框下?虽然这似乎是合乎逻辑的答案,但我不相信。我已经将对话框移到了整个屏幕上,但在站点中仍然没有消息框。它也不会在任务栏中显示为窗口。