У меня есть DateTimePicker
, у которого есть флажок (ShowCheckBox = True
).В моем коде я автоматически проверяю и снимаю флажок, основываясь на различных факторах, но позволяю пользователю переопределить это (следовательно, не используя dtp.Enabled = False
).
Проверенное состояние dtp
также изменяет свойство .Enabled
других элементов управления, поэтому я пытаюсь обработать в событии ValueChanged, например:
Private Sub dtp_ValueChanged(sender As Object, e As EventArgs) Handles dtp.ValueChanged
If dtp.Checked Then
SomeOtherControl.Enabled = True
Else
SomeOtherControl.Enabled = False
End If
End Sub
Это работает правильно, когда пользователь выполняет взаимодействие, но если я программно устанавливаю проверенное состояние, событие ValueChanged
не запускается.
Такое поведение отмечено в комментарии к этому вопросу: Как получить событие datetimepicker c # winform check / unchecked
Не могу найти другоессылка на это поведение в документации.
Ожидается ли это, если да, то почему?И если нет, то как я могу гарантировать, что изменение проверенного состояния программно вызывает событие ValueChanged?