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
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.