Установка свойства DateTimePicker.Checked программно не вызывает событие .ValueChanged - PullRequest
0 голосов
/ 29 мая 2019

У меня есть 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...