Создайте новый класс, который наследуется от Panel, и переопределите OnPaintBackground.
class MyPanel : Panel
{
private Image m_image;
public Image BackgroundImage
{
get { return m_image; }
set
{
if (m_image != null) m_image.Dispose();
m_image = value;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
if (BackgroundImage == null)
{
base.OnPaintBackground(e);
}
else
{
e.Graphics.DrawImage(BackgroundImage, 0, 0);
}
}
}