Imports System.ComponentModel
Public Class ColouredDateTimePicker
Inherits DateTimePicker
#Region " Component Designer generated code "
Public Sub New(ByVal Container As System.ComponentModel.IContainer)
MyClass.New()
'Required for Windows.Forms Class Composition Designer support
Container.Add(Me)
End Sub
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Component overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Component Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Component Designer
'It can be modified using the Component Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
#End Region
Private _backBrushColour As SolidBrush
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 _backBrushColour Is Nothing Then
_backBrushColour = New SolidBrush(Me.BackColor)
End If
g.FillRectangle(_backBrushColour, Me.ClientRectangle)
g.Dispose()
Else
MyBase.WndProc(m)
End If
End Sub
<Browsable(True), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
Public Overrides Property BackColor() As Color
Get
Return MyBase.BackColor
End Get
Set(ByVal Value As Color)
If Not _backBrushColour Is Nothing Then
_backBrushColour.Dispose()
End If
MyBase.BackColor = Value
_backBrushColour = New SolidBrush(Me.BackColor)
Me.Invalidate()
End Set
End Property
End Class