Я использую это, чтобы показать мою форму на экране:
Point point = (Control.MousePosition);
popupControl.Location = point;
popupControl.Show();
иногда она появляется за пределами экрана. Я могу проверить это с помощью this :
public static bool IsOnScreen(Control form)
{
Screen[] screens = Screen.AllScreens;
foreach (Screen screen in screens)
{
Rectangle formRectangle = new Rectangle(form.Left, form.Top,
form.Width, form.Height);
if (screen.WorkingArea.Contains(formRectangle))
{
return true;
}
}
return false;
}
Но как я могу переместить его обратно на экран?
Я хочу, чтобы он находился в ближайшей позиции от первоначальной позиции