我一直为此苦苦挣扎。我有一个Windows窗体应用程序,该窗口的位置在关闭时存储在其中。然后可以在下次应用程序运行时打开此表单。只要显示器处于开启状态,它就可以在多台显示器上工作。 但是,有时人们在计算机上运行该软件,而下次他们运行该软件时,则没有第二个监视器,或者该监视器已关闭。当软件启动时,该表格因此不可见。 现在有许多示例可以纠正此问题,但没有一个起作用!它们都使用Screens.AllScreens函数。问题在于,即使关闭了一个屏幕,此功能也会返回两个屏幕可用。这是10年前发布的stackoverflow示例。
public bool IsOnScreen( Form form )
{
Screen[] screens = Screen.AllScreens;
foreach( Screen screen in screens )
{
Point formTopLeft = new Point( form.Left, form.Top );
if( screen.WorkingArea.Contains( formTopLeft ) )
{
return true;
}
}
return false;
}
有人有可行的例子吗?谢谢