|
■No69928 (らうむ さん) に返信
> CheckBoxはOnPaintをオーバーライドしてテキストを自前描画できれば・・・と思いましたが、
> 既定のテキスト描画を止めることができませんでした。
> CheckBox、LabelともにDrawMode等も指定できそうになく。
VB.NETですが、OnPaintを使う例です。CheckBoxStateは各状態に合わせ変更してみて下さい。
Public Class CheckBoxEx
Inherits CheckBox
Public Sub New()
SetStyle(ControlStyles.UserPaint, True)
End Sub
Protected Overrides Sub OnPaint(pevent As System.Windows.Forms.PaintEventArgs)
Dim grp = pevent.Graphics
Using brs As New SolidBrush(Me.BackColor)
grp.FillRectangle(brs, Me.ClientRectangle)
End Using
CheckBoxRenderer.DrawParentBackground(grp, Me.ClientRectangle, Me)
CheckBoxRenderer.DrawCheckBox(grp, New Point(0, 0), _
New Rectangle(15, 0, Me.Width - 15, Me.Height), _
Me.Text, _
Me.Font, _
Me.Focused, _
VisualStyles.CheckBoxState.CheckedPressed)
End Sub
End Class
|