Sounds like you will want to create your own custom control. You will probably want to do the using the visual designer but I thought I would give an example of how you might go about doing this.
First the UserControl:
class CustomPictureBoxControl : UserControl
{
public CustomPictureBoxControl(Image img, int width, int height, Color backgroundColor)
{
this.Width = width;
this.Height = height;
this.Padding = new System.Windows.Forms.Padding(5);
this.BackColor = backgroundColor;
PictureBox picBox = new PictureBox();
picBox.Image = img;
picBox.SizeMode = PictureBoxSizeMode.StretchImage;
CheckBox checkBox = new CheckBox();
checkBox.Checked = true;
checkBox.Text = "Some text if any";
checkBox.Dock = DockStyle.Top;
picBox.Dock = DockStyle.Fill;
this.Controls.Add(checkBox);
this.Controls.Add(picBox);
}
}
And an example of how you could use it:
private void Form1_Load(object sender, EventArgs e)
{
Image img = (Image)new Bitmap("test2.png");
CustomPictureBoxControl customPicBox = CreateCustomPicBoxControl(img);
this.Controls.Add(customPicBox);
}
private CustomPictureBoxControl CreateCustomPicBoxControl(Image img)
{
CustomPictureBoxControl customPicBox = new CustomPictureBoxControl(img, 128, 128, Color.CornflowerBlue);
return customPicBox;
}
Of course you will need to modify it to your needs. Hope this helps some.