Datetimepicker dont on peut modifier la propriété backcolor

Contenu du snippet

La propriété BackColor d'un contrôle DateTimePicker n'est pas modifiable, tout du moins elle n'apparait pas dans le contrôle lui-même, ni dans la partie "calendrier" du contrôle lorsque celle-ci est affichée.
Ce code contient une classe dérivée de DateTimePicker, dont la proriété BackColor est surchargée.

Source / Exemple :


Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Public Class MonDTP
    Inherits DateTimePicker

    Private m_backBrush As SolidBrush

    Public Overrides Property BackColor() As Color
        Get
            Return MyBase.BackColor
        End Get
        Set(ByVal Value As Color)
            If Not m_backBrush Is Nothing Then
                m_backBrush.Dispose()
            End If
            MyBase.BackColor = Value
            m_backBrush = New SolidBrush(Me.BackColor)
            Me.Invalidate()
        End Set
    End Property

    Protected Overrides Sub WndProc(ByRef m As Message)
        Const WM_ERASEBKGND As Int32 = &H14

        If m.Msg = WM_ERASEBKGND Then
            Dim g As Graphics = Graphics.FromHdc(m.WParam)
            If m_backBrush Is Nothing Then
                m_backBrush = New SolidBrush(Me.BackColor)
            End If
            g.FillRectangle(m_backBrush, Me.ClientRectangle)
            g.Dispose()
        Else
            MyBase.WndProc(m)
        End If
    End Sub

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso Not m_backBrush Is Nothing Then
            m_backBrush.Dispose()
        End If
        MyBase.Dispose(disposing)
    End Sub

End Class

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.