У меня есть UserControl с кнопкой на панели, которая находится на UserControl (это часть пользовательского календаря, настроенного с помощью TableLayoutPanel, а UserControl отображает содержимое каждого дня в календаре). При нажатии на кнопку отображается диалоговое окно. Я хочу, чтобы диалог отображался в том же месте, что и UserControl. У меня есть свойство StartPosition для диалога, установленного на «Вручную».
dlgStatuses DlgStatuses = new dlgStatuses(this);
ucDate ucParent = (ucDate)((Button)sender).Parent.Parent; //This is the UserControl
int x = PointToScreen(ucParent.Location).X;
int y = PointToScreen(ucParent.Location).Y;
DlgStatuses.Location = new Point(x, y);
DlgStatuses.ShowDialog();
Это не работает, как нужно. Я попробовал PointToClient, и он тоже не работает. Я также пробовал это, и это не удается:
dlgStatuses DlgStatuses = new dlgStatuses(this);
ucDate ucParent = (ucDate)((Button)sender).Parent.Parent;
DlgStatuses.Location = ucParent.Location;
DlgStatuses.ShowDialog();
Так что мне нужно, чтобы DlgStatuses отображался в том же месте, что и ucParent.