Because you create a new instance of the form each time you click Button1, you shouldn't Hide it - instead, go to the ProfilepictureCapture form, and set the DialogResult property of the btnok button to DialogResult.OK
Now, when the user clicks the OK button, the form will close and control will return to the original form.
Add a property to the ProfilepictureCapture form:
public Image ProfilePic
{
get { return pictureBox2.Image; }
}
And then use that property in your calling form:
private void Button1_Click(object sender, EventArgs e)
{
ProfilepictureCapture imc = new ProfilepictureCapture();
if (imc.ShowDialog(this) == DiralogResult.OK)
{
Image myPicture = imc.ProfilePic;
...
}
}