我有一个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
事件不会触发。
此问题的注释中记录了此行为:How to get datetimepicker c# winform checked/unchecked event
我在文档中找不到其他有关此行为的引用。
这是否是预期的,如果是,为什么?如果没有,如何确保以编程方式更改检查状态会触发ValueChanged事件?