Как не вызывать событие datepicker.valuechanged при просмотре месяца в средстве выбора даты - PullRequest
2 голосов
/ 13 сентября 2011

Я использую vb.net. Я добавляю указатель даты следующим образом

Friend WithEvents dtpReportDate As System.Windows.Forms.DateTimePicker

У выбора даты по умолчанию есть стрелка влево и стрелка вправо, которые позволяют просматривать предыдущий месяц и следующий месяц. Я добавляю обработчик к значению события выбора значения:

AddHandler dtpReportDate.ValueChanged, AddressOf dtpReportDateChanged

Private Sub dtpReportDateChanged (ByVal отправитель как объект, ByVal e как System.EventArgs)

'сделайте что-нибудь здесь

End Sub

Проблема в том, что всякий раз, когда я нажимаю стрелку влево или стрелку вправо, чтобы изменить месяц, запускается dptReportDateChanged. Я не хочу, чтобы это случилось. Все, что я хочу, это чтобы после того, как я нашел месяц, я дважды щелкнул по дате, чтобы вызвать событие.

Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 13 сентября 2011

Попробуйте это:

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
0 голосов
/ 18 октября 2018

Или вы можете просто вызвать событие CloseUp вместо ValueChanged.Это сработало достаточно хорошо для меня.

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