Форма будет ожидать координаты относительно верхнего левого угла экрана. Однако расположение элемента управления в пределах формы формы относительно верхнего левого угла формы † .
Используйте свойство элемента управления Location
, чтобы найти его местоположение, а затем вызовите PointToScreen
объекта Form, чтобы превратить его в экранные координаты. Затем вы можете расположить новую форму относительно этого.
Например:
var locationInForm = myControl.Location;
var locationOnScreen = mainForm.PointToScreen(locationInForm);
using (var model = new ModelForm())
{
model.Location = new Point(locationOnScreen.X, locationOnScreen.Y + myControl.Height + 3);
model.ShowDialog();
}
† На самом деле верхний левый угол клиентской области формы.