この時点で、 にKrypton Toolkit Panel
はコントロール スタイルがないと結論付けても問題ないと思いますUserPaint
。
「true の場合、オペレーティング システムではなく、コントロール自体がペイントします。false の場合、Paint イベントは発生しません。このスタイルは、Control から派生したクラスにのみ適用されます。」- MSDN
可能であれば、次のオプションのいずれかを試すことができます。
から派生したカスタム コントロールを作成することから始めKrypton Toolkit Panel
ます。
オプション1
コンストラクターにフラグを追加します。(これにより、基本クラスのカスタム図面が壊れる可能性があります)
Public Sub New()
MyBase.SetStyle(ControlStyles.UserPaint, True)
End Sub
オプション 2
オーバーライドしWndProc
ます。
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Try
If ((m.Msg = WM_PAINT) OrElse (m.Msg = WM_ERASEBKGND)) Then
Using g As Graphics = Me.CreateGraphics()
Me.OnPaint(New PaintEventArgs(g, Me.ClientRectangle))
End Using
End If
Catch ex As Exception
Finally
MyBase.WndProc(m)
End Try
End Sub
Const WM_PAINT As Integer = 15
Const WM_ERASEBKGND As Integer = 20