FC2ブログ

記事一覧

DateTimePickerコントロール(VB.NET)にて背景色の変更ができないバグあり!

DateTimePickerコントロール(VB.NET)にて、背景色を、例えば現在選択状態という意味で黄色等に変更しようとしてもできない。調査した所、DateTimePickerコントロールのバグと判明!
じゃぁ、どうするかっていうと、以下のようにラッパークラスを作成して、BackColorプロパティをオーバーライドして、WndProcでBackColorを設定してやると変更できるようになった。


Partial Public Class UltraDateTimePicker
Inherits DateTimePicker
Implements ISupportInitialize
・・・・・・・・・・
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = &H4E Then
・・・・・・・・・・
End If
If (m.Msg = &H14) Then 'WM_ERASEBKGND
If (m.WParam <> 0) Then
Dim a_g As Graphics = Graphics.FromHdc(m.WParam)
Dim a_solidBrush As SolidBrush = New SolidBrush(Me.BackColor)
a_g.FillRectangle(a_solidBrush, MyBase.ClientRectangle)
a_solidBrush.Dispose()
a_g.Dispose()
Exit Sub
End If
End If
・・・・・・・・・・
End Sub
・・・・・・・・・・
#Region "BackColor"
_
_
Public Overrides Property BackColor() As Color
Get
Return MyBase.BackColor
End Get
Set(value As Color)
MyBase.BackColor = value
End Set
End Property
#End Region
・・・・・・・・・・
End Class
スポンサーサイト



コメント

コメントの投稿

非公開コメント