DateTimePickerを少しカスタマイズしたいのですが、
下部についている「今日の日付(下図の赤枠部分)」を削除or非表示にする方法をいますか?
MonthCalendarはShowTodayプロパティをfalseにすると可能だったんですが、
DateTimePickerはそのようなプロパティが見当たりませんでした。
追加で
赤枠の前月と翌月の数字(赤枠)も削除or非表示にすることは可能なのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
タイトルと本文でDateがDataになっているので修正をお願いします

回答1件
0
ベストアンサー
stackoverflowにありました
How can I remove the “Today” button from DateTimePicker control
C#
1using System; 2using System.Windows.Forms; 3using System.Runtime.InteropServices; 4 5class MyDateTimePicker : DateTimePicker { 6 protected override void OnHandleCreated(EventArgs e) { 7 int style = (int)SendMessage(this.Handle, DTM_GETMCSTYLE, IntPtr.Zero, IntPtr.Zero); 8 style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE; 9 SendMessage(this.Handle, DTM_SETMCSTYLE, IntPtr.Zero, (IntPtr)style); 10 base.OnHandleCreated(e); 11 } 12 //pinvoke: 13 private const int DTM_FIRST = 0x1000; 14 private const int DTM_SETMCSTYLE = DTM_FIRST + 11; 15 private const int DTM_GETMCSTYLE = DTM_FIRST + 12; 16 private const int MCS_NOTODAYCIRCLE = 0x0008; 17 private const int MCS_NOTODAY = 0x0010; 18 19 [DllImport("user32.dll")] 20 private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); 21}
質問者(KhannaB7)/回答者(Hans Passant)
- クラスを追加して上記のコードをペーストし、ビルドする
- ツールボックスに追加された「MyDateTimePicker」を「DateTimePicker」の代わりにフォームに貼り付ける
- 当月のみ表示対応
C#
1 private const int MCS_NOTRAILINGDATES = 0x0040;
を追加し、
C#
1 style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE | MCS_NOTRAILINGDATES ;
で当月のみ表示されます。
Month Calendar Control Styles
にある通り、Vista以降でのみ有効です。
投稿2019/07/25 13:09
編集2020/07/11 06:23総合スコア4079
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
すみませんがよくわかりませんでした。
DateTimePickerを継承したクラスを作成するってことですか?
日本語で追記しました
ありがとうございます。できました。
追加で申し訳ありませんが、前月と翌月の数字(赤枠)も削除or非表示にすることは
可能なのでしょうか?
VisualStudio上のDateTimePickerコントロールのプロパティには項目がありませんが、WindowsのDateTimePicker自体は「今日の日付」を非表示にできるため、サブクラス化してコントロール生成時にDTM_SETMCSTYLEメッセージを送ってスタイル変更しています。
https://docs.microsoft.com/en-us/windows/win32/controls/dtm-setmcstyle
追加の質問までありがとございます

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。