1

datetimepickerコントロールの下部に表示されているTodayリンクを削除しようとしています。コードで同様の質問を見つけましたが、これは機能していないようです-変換に問題がありますか、またはこのメソッドは無効になっていますか(Visual Studio 2012)?

Class MyDateTimePicker
Inherits DateTimePicker
Protected Overrides Sub OnHandleCreated(e As EventArgs)
    Dim style As Integer = CInt(SendMessage(Me.Handle, DTM_GETMCSTYLE, IntPtr.Zero, IntPtr.Zero))
    style = style Or MCS_NOTODAY Or MCS_NOTODAYCIRCLE
    SendMessage(Me.Handle, DTM_SETMCSTYLE, IntPtr.Zero, CType(0, IntPtr))
    MyBase.OnHandleCreated(e)
End Sub

Private Const DTM_FIRST As Integer = &H1000
Private Const DTM_SETMCSTYLE As Integer = DTM_FIRST + 11
Private Const DTM_GETMCSTYLE As Integer = DTM_FIRST + 12
Private Const MCS_NOTODAYCIRCLE As Integer = &H8
Private Const MCS_NOTODAY As Integer = &H10

<DllImport("user32.dll")> _
Private Shared Function SendMessage(hWnd As IntPtr, msg As Integer, wp As IntPtr, lp As IntPtr) As IntPtr
End Function
End Class

出典:(Windowsフォームコントロールの)DateTimePickerコントロールから[今日]ボタンを削除するにはどうすればよいですか?

4

1 に答える 1

1

あなたはスタイルを送っていません:

これを変える:

SendMessage(Me.Handle, DTM_SETMCSTYLE, IntPtr.Zero, CType(0, IntPtr))

これに:

SendMessage(Me.Handle, DTM_SETMCSTYLE, IntPtr.Zero, CType(style, IntPtr))
于 2013-02-01T21:09:45.687 に答える