Public Class CustomContextMenu
Inherits ContextMenuStrip
Private mImage As Image
Private Sub CustomContextMenu_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
Me.Refresh()
End Sub
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
If Me.Items.Count >= 1 And Me.mImage IsNot Nothing Then
If Me.mImage.Width > 24 Then Call Me.ResizeImage()
e.Graphics.DrawImage(Me.mImage, New PointF(0, 0))
End If
End Sub
Public Property MarginImage() As Image
Get
Return Me.mImage
End Get
Set(ByVal value As Image)
Me.mImage = value
Me.Refresh()
End Set
End Property
Private Sub ResizeImage()
If Me.mImage IsNot Nothing Then
Dim bmp As New Bitmap(24, Me.mImage.Height)
Dim g As Graphics = Graphics.FromImage(bmp)
g.DrawImage(Me.mImage, New PointF(0, 0))
g.Dispose()
g = Nothing
Me.mImage.Dispose()
Me.mImage = Nothing
Me.mImage = bmp
End If
End Sub
End Class