我想顯示一個消息框,當模式對話框窗口中發生錯誤,但由於某種原因消息框永遠不會顯示,雖然我知道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