在日期选择器中浏览月份时如何不触发datepicker.valuechanged事件

Sum*_*mer 2 vb.net datepicker

我正在使用vb.net。我添加日期选择器如下

Friend WithEvents dtpReportDate As System.Windows.Forms.DateTimePicker
Run Code Online (Sandbox Code Playgroud)

默认日期选择器具有向左箭头和向右箭头,可让您浏览上个月和下个月。我向日期选择器valuechanged事件添加处理程序:

AddHandler dtpReportDate.ValueChanged, AddressOf dtpReportDateChanged
Run Code Online (Sandbox Code Playgroud)

私有Sub dtpReportDateChanged(ByVal发送者为对象,ByVal为System.EventArgs)

'在这里做点什么

结束子

问题是,每当我单击左箭头或右箭头更改月份时,就会触发dptReportDateChanged。我不希望这种情况发生。我只想要找到一个月后,双击日期以触发该事件。

非常感谢!

Lar*_*ech 5

尝试这个:

Private Sub DateTimePicker1_ValueChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DateTimePicker1.ValueChanged
  Me.Text = DateTimePicker1.Value.ToString
End Sub

Private Sub DateTimePicker1_DropDown(ByVal sender As Object, ByVal e As EventArgs) Handles DateTimePicker1.DropDown
  RemoveHandler DateTimePicker1.ValueChanged, AddressOf DateTimePicker1_ValueChanged
End Sub

Private Sub DateTimePicker1_CloseUp(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.CloseUp
  AddHandler DateTimePicker1.ValueChanged, AddressOf DateTimePicker1_ValueChanged
  Call DateTimePicker1_ValueChanged(sender, EventArgs.Empty)
End Sub
Run Code Online (Sandbox Code Playgroud)