private bool IsOnScreen(Form form)
{
Screen[] screens = Screen.AllScreens;
var formTopLeft = new Point(form.Left, form.Top);
//hack for maximised window
if (form.WindowState == FormWindowState.Maximized)
{
formTopLeft.X += 8;
formTopLeft.Y += 8;
}
return screens.Any(screen => screen.WorkingArea.Contains(formTopLeft));
}