Я думаю, что вы имели в виду .ValueChanged
для NumericUpDown
контроля. (Нет .CheckedChanged
). Хотя в данном случае это не имеет большого значения, это хороший пример для дальнейшего использования. Вместо вызова события вызовите Sub из ваших событий.
Если у вас есть несколько элементов управления, отвечающих на один обработчик события, вы можете узнать, какой элемент управления вызвал событие, проверив параметр отправителя. Поскольку, как вы можете видеть, sender
является Object
, вам придется привести его к соответствующему типу, чтобы получить свойства CheckBox
.
Private Sub HideSaveButton()
btnSave.Hide
End Sub
Private Sub CheckBoxInGroupBox_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged
HideSaveButton()
Dim WhichCheckBox As CheckBox = DirectCast(sender, CheckBox)
Select Case WhichCheckBox.Name
Case "CheckBox1"
MessageBox.Show("CheckBox1 has changed")
Case "CheckBox2"
MessageBox.Show("CheckBox2 has changed")
End Select
End Sub
Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
HideSaveButton()
End Sub
Той информации не достаточно для получения Вас отслеживание стека, тип исключительной ситуации, сообщение об ошибке, и т.д.
Можно настроить Windows Error Reporting (который показал Вам проблему и потребности закрыть UI) на Windows Server 2008, чтобы всегда собрать файл дампа, который можно затем отладить. Это не требует, чтобы Вы установили Visual Studio или любой другой отладчик в Вашей продуктивной среде.
http://blogs.technet.com/askperf/archive/2008/02/05/ws2008-windows-error-reporting.aspx показывает надлежащие настройки реестра, чтобы сделать это.