2011-04-11 40 views
0

我總是用
Me.Cursor = Cursors.WaitCursor
一段時間以像擊中數據庫一樣的功能。
Msgbox(ex.Message)在顯示消息框之前做一些動作,winforms

所以顯示任何消息之前,我需要將光標重置爲默認設置:如果發生任何異常現在

,我會顯示錯誤消息。 有沒有一種簡單的方法可以在一個地方完成,而不是寫入所有的catch塊。

有沒有辦法繼承MessageBox類並重寫函數?

其他方面我需要在所有catch塊中編寫代碼或在一個地方處理所有異常,我不想現在修改整個應用程序。

感謝所有提前。

回答

0

我想你可以創建一個像這樣的通用函數,它接受Exception作爲參數並在每個catch塊中調用這個函數。

Try 
'Do some code here 
catch ex as Exception 
ShowException(ex) 
End Try 


Private Sub ShowException(ex as Exception) 
MessageBox.Show("An exception occured." + vbCrLf + ex.ToString()) 
Me.Cursor = Cursors.Default 
End Sub 
0

爲什麼要更改光標?我從來沒有喜歡這個(除了在VBA :))

爲什麼不使用BackgroundWorker來完成這項工作,以便您的GUI仍然resposive。也許你可以在狀態欄或對話框窗體中顯示進度,以顯示任務的進度?

+0

只是注意到它說的MsgBox(),所以它是VBA :)。 yuo可能想將「標記」從「winforms」更改爲excel或vba – 2011-04-11 15:03:43

+0

MsgBox在VB.Net和Winforms – 2011-04-12 14:28:11

+0

中完美有效。沒有做太多的VB.NET :) – 2011-04-13 07:35:17