残念ながら、このイベントにテキストもDropDown-Buttonもレンダリングされない(ただし機能している)限り、Paint-Eventを「動的に」割り当てるDateTimePickerがあります。
別のコントロールを取り、それに何かを描画するコンポーネントを作成しました
Public Sub New(Byval parent As Control)
Me._parent = parent
Me._setStyle = Me._parent.GetType().GetMethod("SetStyle", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
Me._setStyle.Invoke(Me._parent, New Object() {ControlStyles.UserPaint, True})
Me._setStyle.Invoke(Me._parent, New Object() {ControlStyles.OptimizedDoubleBuffer, True})
AddHandler Me._parent.Paint, AddressOf RemotePaintHandler
End Sub
Private Sub RemotePaintHandler(ByVal sender As Object, ByVal e As PaintEventArgs)
'draw something here'
End Sub
コンポーネントを破棄するときに、ハンドラーを削除してスタイルをリセットします。ただし、ハンドラーが割り当てられている限り、DateTimePickerはコンテンツのない通常のテキストボックスのようにレンダリングされますが、ボタンは機能しており、値を入力することもできます。OnPaint()メソッドを上書きした場合は、MyBase.OnPaint()などを呼び出すだけですが、これはイベントハンドラーです...今はまったくわかりません。