public static PictureBox add_PictureBox(this Control control, int top, int left) { return (PictureBox)control.invokeOnThread( ()=>{ var pictureBox = new PictureBox(); pictureBox.BackgroundImageLayout = ImageLayout.Stretch; if (top == -1 && left == -1) pictureBox.fill(); else { if (top > -1) pictureBox.Top = top; if (left > -1) pictureBox.Left = left; } control.Controls.Add(pictureBox); return pictureBox; }); }