DateTimePickerの描画はC#での実装ではなくコモンコントロールのSysDateTimePick32だと思います。
C#
1 protected override CreateParams CreateParams {
2 [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
3 get {
4 CreateParams cp = base.CreateParams;
5 cp.ClassName = NativeMethods.WC_DATETIMEPICK;
6
7 cp.Style |= style;
8
9 switch (format) {
10 case DateTimePickerFormat.Long:
11 cp.Style |= NativeMethods.DTS_LONGDATEFORMAT;
12 break;
13 case DateTimePickerFormat.Short:
14 break;
15 case DateTimePickerFormat.Time:
16 cp.Style |= TIMEFORMAT_NOUPDOWN;
17 break;
18 case DateTimePickerFormat.Custom:
19 break;
20 }
21
22 cp.ExStyle |= NativeMethods.WS_EX_CLIENTEDGE;
23
24 if (RightToLeft == RightToLeft.Yes && RightToLeftLayout == true) {
25 //We want to turn on mirroring for DateTimePicker explicitly.
26 cp.ExStyle |= NativeMethods.WS_EX_LAYOUTRTL;
27 //Don't need these styles when mirroring is turned on.
28 cp.ExStyle &= ~(NativeMethods.WS_EX_RTLREADING | NativeMethods.WS_EX_RIGHT | NativeMethods.WS_EX_LEFTSCROLLBAR);
29 }
30
31 return cp;
32 }
33 }
といった感じでCreateParamsにてクラス名に
cp.ClassName = NativeMethods.WC_DATETIMEPICK;
とSysDateTimePick32を設定しています。
色の変更は
DateTimePickerの文字色を変更したい
が参考になりませんかね