What I like to do is use a UserControl rather than a picturebox.
Create a usercontrol and add the following properties
VB Code:
  1. Option Explicit
  2.  
  3. Private Sub UserControl_Initialize()
  4.     UserControl.BackStyle = 0
  5. End Sub
  6.  
  7. Public Property Get MaskColor() As Long
  8.     MaskColor = UserControl.MaskColor
  9. End Property
  10.  
  11. Public Property Let MaskColor(ByVal New_MaskColor As Long)
  12.     UserControl.MaskColor() = New_MaskColor
  13.     PropertyChanged "MaskColor"
  14. End Property
  15.  
  16. Public Property Get Picture() As Picture
  17.     Set Picture = UserControl.Picture
  18. End Property
  19.  
  20. Public Property Set Picture(ByVal New_Picture As Picture)
  21.     Set UserControl.Picture = New_Picture
  22.     Set UserControl.MaskPicture = New_Picture
  23.     PropertyChanged "Picture"
  24. End Property
  25.  
  26. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  27.     UserControl.MaskColor = PropBag.ReadProperty("MaskColor", vbWhite)
  28.     Set Picture = PropBag.ReadProperty("Picture", Nothing)
  29. End Sub
  30.  
  31. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  32.     Call PropBag.WriteProperty("MaskColor", UserControl.MaskColor, vbWhite)
  33.     Call PropBag.WriteProperty("Picture", Picture, Nothing)
  34. End Sub
Now to use it, draw it onto your form, let's call it MyControl
VB Code:
  1. MyControl.MaskColor = vbWhite
  2.     Set MyControl.Picture = LoadPicture("whatever.gif")
If move over your existing controls you will see it has a transparent background