I am trying to create a picturebox that respects the transparency
setting of png files.  This works when the parent is a panel without
borders.  What fix do I need to get it to work on forms or panels with
borders without it having a misalignment issue?

What I am doing is getting what is under my picturebox from my parent
before calling MyBase.OnPaint.

Public Class TransparentPictureBox
       Inherits PictureBox

    Protected Overrides Sub OnPaint(ByVal pe As
System.Windows.Forms.PaintEventArgs)
        Dim g As Graphics = pe.Graphics
        Dim bmp As New Bitmap(Parent.Width, Parent.Height)

        Parent.DrawToBitmap(bmp, New Rectangle(0, 0, Parent.Width,
Parent.Height))

        g.DrawImage(bmp, 0, 0, New Rectangle(Left, Top, Width, Width),
GraphicsUnit.Pixel)

        MyBase.OnPaint(pe)
    End Sub
End Class

Reply via email to