.NET Windows窗体 - DateTimePicker上的Click事件

问题描述:

我的Windows窗体应用程序中有一个DateTimePicker。我给它一个自定义格式,以便在表单加载时,DateTimePicker显示一个空值,并为选取器的ValueChanged事件创建一个处理程序,以便在用户单击图标以显示日历时更改其格式。.NET Windows窗体 - DateTimePicker上的Click事件

但是,我想设置我的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

如果你在代码编辑器看一下下拉列表中选择DTP犯规暴露click事件。用户实际上并不希望格式在点击时改变 – Plutonix

+0

@Plutonix实际上,它确实暴露了点击事件;我点击它,它为我制作了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

你可以使用鼠标按下事件:

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

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