To give a short answer to the specific question of how to get a Form shown at the location of a Control on another Form when the second form is be shown with 'ShowDialog ... in the code for the first Form:
SecondForm f2 = new SecondForm();
f2.StartPosition = FormStartPosition.Manual;
f2.Location = PointToScreen(ControlOnFirstForm.Location);
f2.ShowDialog();