VB.net Программируемый выпадающий указатель даты и времени

#vb.net #drop-down-menu #datetimepicker #sendmessage

#vb.net #выпадающее меню #datetimepicker #отправленное сообщение

Вопрос:

Привет всем, у меня есть этот код здесь:

 Call SendMessage(dtPicker.Handle, CB_SHOWDROPDOWN, True, 0amp;)
  

Это отлично работает в выпадающих списках, но, похоже, не работает, когда дело доходит до поля DateTimePicker.

В чем может быть проблема?

Спасибо!

Дэвид

Ответ №1:

Нет, это для выпадающего списка. Собственный элемент управления DTP довольно неудобен. Он поддерживает сообщение DTM_CLOSEMONTHCAL для закрытия календаря, но не имеет соответствующего сообщения для его открытия. Вам придется сделать что-то уродливое, например, подделать ввод с помощью мыши или клавиатуры. Последнее, вероятно, лучше всего:

 Private Sub ShowMonthCalendar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowMonthCalendar.Click
    DateTimePicker1.Focus()
    SendKeys.Send("{F4}")
End Sub