2017-02-22 16 views
0

У меня есть DateTimePicker в моем приложении Windows Forms. Я дал ему специальный формат, чтобы при загрузке формы DateTimePicker появился с пустым значением и сделал обработчик для события ValueChanged сборщика, чтобы он менял свой формат, когда пользователь щелкает значок, чтобы показать календарь..NET Windows Forms - событие Click on DateTimePicker

Однако я хочу установить DateTimePicker так, чтобы он менял свой формат, когда пользователь нажимает на пустую часть (ту, которая будет содержать дату в указанном формате). Это мой код для события:

Private Sub dtpDateOfBirth_Click(sender As Object, e As EventArgs) Handles 
    dtpDateOfBirth.Click 

    Console.WriteLine("dtpDateOfBirth Click") 
    dtpDateOfBirth.CustomFormat = "dd/MM/yyyy" 
End Sub 

но это, кажется, не делать ничего, даже когда я нажимаю на значок, который показывает календарь.

Как изменить формат моего DateTimePicker с помощью мыши?

+0

Если вы посмотрите на список выпадающим меню в редакторе кода ПДО оленья кожа разоблачить событие щелчка. Пользователь на самом деле не ожидал, что формат будет изменен по клику в любом случае – Plutonix

+0

@Plutonix. Фактически, он вызывает событие click; Я нажал на него, и он сделал Sub для меня. Вот почему я задаю этот вопрос. И пользователь, который его протестировал, попросил об этом; однако для него это не совсем изменение формата; пользовательский формат - это пробел, поэтому дата сначала кажется пустой, и он ожидал, что сможет набрать после нажатия на пустую часть, не будучи вынужденным использовать календарь. –

+0

[на самом деле это не так) (http://i.imgur.com/yt67mxy.jpg) Из [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker (v = vs.110) .aspx) События кликов ... не предназначены для использования непосредственно из вашего кода. – Plutonix

ответ

1

Вы можете использовать событие MouseDown:

Private Sub dtpDateOfBirth_Click(sender As Object, e As EventArgs) Handles 
    dtpDateOfBirth.MouseDown 

    Console.WriteLine("dtpDateOfBirth Click") 
    dtpDateOfBirth.CustomFormat = "dd/MM/yyyy" 
End Sub 
Смежные вопросы