#vb.net #winforms
#vb.net #winforms
Вопрос:
Я всегда использую Me.Cursor = Cursors.WaitCursor
какое-то время требуются такие функции, как обращение к базе данных.
Теперь, если возникнет какое-либо исключение, я выведу сообщение об ошибке как: Msgbox(ex.Message)
Итак, перед отображением любого сообщения мне нужно сбросить курсор на значение по умолчанию. Есть ли простой способ сделать это в одном месте вместо того, чтобы записывать это во все блоки catch.
Есть ли способ наследовать класс MessageBox и переопределить функции?
В противном случае мне нужно закодировать его во всех блоках catch или обработать все исключения в одном месте, которое я не хочу сейчас изменять во всем приложении.
Заранее всем спасибо.
Ответ №1:
Я думаю, вы можете создать общую функцию, подобную этой, которая принимает исключение в качестве параметра и вызывает эту функцию в каждом блоке 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
Ответ №2:
почему вы хотите изменить курсор? Я никогда не одобрял это (за исключением VBA :))
почему бы не использовать BackgroundWorker для выполнения этой работы, чтобы ваш графический интерфейс оставался отзывчивым. и, может быть, вы могли бы немного добавить progressbase в строку состояния или диалоговую форму, чтобы показать ход выполнения задачи?
Комментарии:
1. только что заметил, что там написано MsgBox(), так что это VBA :). возможно, вы захотите изменить свой «тег» с «winforms» на excel или vba
2. MsgBox идеально подходит для VB. Net и Winforms