2017-02-22 89 views
0

我的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

回答

1

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

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

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