質問するログイン新規登録

回答編集履歴

6

質問者・回答者プロフィールへのリンクを追加

2020/07/11 06:23

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,9 +1,6 @@
1
1
  stackoverflowにありました
2
2
  [How can I remove the “Today” button from DateTimePicker control](https://stackoverflow.com/questions/10918138/how-can-i-remove-the-today-button-from-datetimepicker-control-of-windows-form)
3
3
 
4
- 0. クラスを追加して以下のコードをペーストし、ビルドする
5
- 0. ツールボックスに追加された「MyDateTimePicker」を「DateTimePicker」の代わりにフォームに貼り付ける
6
-
7
4
  ```C#
8
5
  using System;
9
6
  using System.Windows.Forms;
@@ -27,7 +24,11 @@
27
24
  private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
28
25
  }
29
26
  ```
27
+ 質問者([KhannaB7](https://stackoverflow.com/users/1259841/khannab7))/回答者([Hans Passant](https://stackoverflow.com/users/17034/hans-passant))
30
28
 
29
+ 0. クラスを追加して上記のコードをペーストし、ビルドする
30
+ 0. ツールボックスに追加された「MyDateTimePicker」を「DateTimePicker」の代わりにフォームに貼り付ける
31
+
31
32
  ![DateTimePicker](b006315f3db688c32d029c2d6631b5c5.png)
32
33
 
33
34
  - 当月のみ表示対応

5

リンク修正

2020/07/11 06:23

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -39,6 +39,6 @@
39
39
  style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE | MCS_NOTRAILINGDATES ;
40
40
  ```
41
41
  で当月のみ表示されます。
42
- [Month Calendar Control Styles](https://docs.microsoft.com/ja-jp/windows/win32/controls/month-calendar-control-styles)
42
+ [Month Calendar Control Styles](https://docs.microsoft.com/en-us/windows/win32/controls/month-calendar-control-styles)
43
43
  にある通り、Vista以降でのみ有効です。
44
44
  ![当月のみ表示](019353669296e6bd70435249f98249a5.png)

4

リンク修正

2019/07/25 14:59

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -39,6 +39,6 @@
39
39
  style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE | MCS_NOTRAILINGDATES ;
40
40
  ```
41
41
  で当月のみ表示されます。
42
- https://docs.microsoft.com/ja-jp/windows/win32/controls/month-calendar-control-styles
42
+ [Month Calendar Control Styles](https://docs.microsoft.com/ja-jp/windows/win32/controls/month-calendar-control-styles)
43
43
  にある通り、Vista以降でのみ有効です。
44
44
  ![当月のみ表示](019353669296e6bd70435249f98249a5.png)

3

当月のみ表示方法追記

2019/07/25 14:58

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -28,4 +28,17 @@
28
28
  }
29
29
  ```
30
30
 
31
- ![DateTimePicker](b006315f3db688c32d029c2d6631b5c5.png)
31
+ ![DateTimePicker](b006315f3db688c32d029c2d6631b5c5.png)
32
+
33
+ - 当月のみ表示対応
34
+ ```C#
35
+ private const int MCS_NOTRAILINGDATES = 0x0040;
36
+ ```
37
+ を追加し、
38
+ ```C#
39
+ style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE | MCS_NOTRAILINGDATES ;
40
+ ```
41
+ で当月のみ表示されます。
42
+ https://docs.microsoft.com/ja-jp/windows/win32/controls/month-calendar-control-styles
43
+ にある通り、Vista以降でのみ有効です。
44
+ ![当月のみ表示](019353669296e6bd70435249f98249a5.png)

2

stackoverflowの内容を日本語で追記

2019/07/25 14:57

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,3 +1,31 @@
1
1
  stackoverflowにありました
2
2
  [How can I remove the “Today” button from DateTimePicker control](https://stackoverflow.com/questions/10918138/how-can-i-remove-the-today-button-from-datetimepicker-control-of-windows-form)
3
+
4
+ 0. クラスを追加して以下のコードをペーストし、ビルドする
5
+ 0. ツールボックスに追加された「MyDateTimePicker」を「DateTimePicker」の代わりにフォームに貼り付ける
6
+
7
+ ```C#
8
+ using System;
9
+ using System.Windows.Forms;
10
+ using System.Runtime.InteropServices;
11
+
12
+ class MyDateTimePicker : DateTimePicker {
13
+ protected override void OnHandleCreated(EventArgs e) {
14
+ int style = (int)SendMessage(this.Handle, DTM_GETMCSTYLE, IntPtr.Zero, IntPtr.Zero);
15
+ style |= MCS_NOTODAY | MCS_NOTODAYCIRCLE;
16
+ SendMessage(this.Handle, DTM_SETMCSTYLE, IntPtr.Zero, (IntPtr)style);
17
+ base.OnHandleCreated(e);
18
+ }
19
+ //pinvoke:
20
+ private const int DTM_FIRST = 0x1000;
21
+ private const int DTM_SETMCSTYLE = DTM_FIRST + 11;
22
+ private const int DTM_GETMCSTYLE = DTM_FIRST + 12;
23
+ private const int MCS_NOTODAYCIRCLE = 0x0008;
24
+ private const int MCS_NOTODAY = 0x0010;
25
+
26
+ [DllImport("user32.dll")]
27
+ private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
28
+ }
29
+ ```
30
+
3
31
  ![DateTimePicker](b006315f3db688c32d029c2d6631b5c5.png)

1

画像追加

2019/07/25 14:15

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,2 +1,3 @@
1
1
  stackoverflowにありました
2
- [How can I remove the “Today” button from DateTimePicker control](https://stackoverflow.com/questions/10918138/how-can-i-remove-the-today-button-from-datetimepicker-control-of-windows-form)
2
+ [How can I remove the “Today” button from DateTimePicker control](https://stackoverflow.com/questions/10918138/how-can-i-remove-the-today-button-from-datetimepicker-control-of-windows-form)
3
+ ![DateTimePicker](b006315f3db688c32d029c2d6631b5c5.png)