BorderColorプロパティでラベルを作成しようとしましたが、動作しません。私はフォームアプリケーションでこのラベルのインスタントオブジェクトを作成し、BorderColorを変更しようとしますが、何も起こりません。 これは私のコードです:BorderColorプロパティでカスタムラベルを作成します。
Public Class MyLabel
Inherits Label
Private _BorderColor As Color
Dim e As New PaintEventArgs(Me.CreateGraphics, Me.DisplayRectangle)
Public Property BorderColor As Color
Get
Return _BorderColor
End Get
Set(value As Color)
_BorderColor = value
CreateBorder(value)
End Set
End Property
Private Sub CreateBorder(ByVal value As Color)
Dim g As Graphics = Me.CreateGraphics
Dim p As Pen = New Pen(value, 2)
g.DrawRectangle(p, Me.DisplayRectangle)
End Sub
Private Sub MyLabel_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
CreateBorder(_BorderColor)
End Sub
エンドクラス
...あなたも)PaintEventArgsの – Plutonix
使用無効化を(変更しないでください、決してリフレッシュ()。 –
@ HansPassant、アプリケーションコードでは、特に再ペイントが確実に行われるようにするには、 'Refresh'を呼び出すことが適切です。しかし、制御コードでは、おそらく 'Invalidate'がより適切であるということは間違いありません。私は上記の変更を行った。 – jmcilhinney