我有一个C#Windows应用程序,我想确保将出现在另一台显示器,如果用户将其移动到一个。 我需要保存主表单的大小,位置和窗口状态(我已经处理过),但是我也需要知道用户closures应用程序时显示的是哪个屏幕。
我正在使用Screen类来确定当前屏幕的大小,但是我无法find关于如何确定应用程序在哪个屏幕上运行的任何信息。
编辑:谢谢你的回复,每个人! 我想确定窗口是哪个监视器,所以我可以进行适当的边界检查,以防用户不小心将窗口放在可视区域外面,或者改变屏幕大小,使窗体不再可见。
validation是否安装Visual C ++ 2008 SP1可再发行组件包没有在Windowsregistry中search?
什么是构buildWindows Phone 7应用程序要连接的服务的最佳可伸缩体系结构?
成为“真正的pipe理员”(Windows),并在.NET C#中执行真正的pipe理任务?
OpenCVSharp:无法加载DLL“OpenCvSharpExtern”
System.Diagnostics.Process无法从Windows窗体应用程序中的映射驱动器启动文件
.net开源和运行平台select
将C#.Net Framework控制台应用程序的源值提供给控制台命令
T4输出到string
我能否以编程方式启动Windows Management Instrumentation服务?
计划的控制台应用程序与Windows服务? 什么时候适用每个?
Screen[] screens = Screen.AllScreens;
你也可以通过运行这个代码来找出你在哪个屏幕上( 这是你正在使用的窗体)
Screen screen = Screen.FromControl(this); //this is the Form class
总之检查一下Screen类和静态辅助方法,他们可能会帮助你。
如果你还记得窗户的位置和大小,那就够了。 当您将位置设置为之前使用的位置时,如果碰巧位于第二台显示器上,则会返回到此位置。
例如,如果您有两台显示器,两台显示器的尺寸均为1280×1024,并将窗口的左侧位置设置为2000像素,则会显示在第二台显示器上(假设第二台显示器位于第一台显示器的右侧)。
如果您担心在下一次启动应用程序时第二台显示器不在该处,则可以使用此方法确定您的窗口是否与任何屏幕相交:
private bool isWindowVisible(Rectangle rect) { foreach (Screen screen in Screen.AllScreens) { if (screen.Bounds.IntersectsWith(rect)) return true; } return false; }
只要通过你的窗口的所需位置,它会告诉你,如果它会在其中一个屏幕上可见。 请享用!
您可以使用当前屏幕
var s = Screen.FromControl(this);
this是表单(或表单上的任何控件)。 至于如何记住这是有点棘手,但我会去在Screen.AllScreens数组中的索引,或者也许s.DeviceName。 无论哪种情况,请在启动时使用设置之前进行检查,以防止使用断开的显示器。
表单的位置将告诉你表单在哪个屏幕上。 我不明白为什么你需要知道它在哪个屏幕上,因为如果你使用你保存的位置恢复它,它应该只是恢复到相同的位置(也许你可以扩大为什么)。
否则,你可以做这样的事情:
Screen[] scr = Screen.AllScreens; scr[i].Bounds.IntersectsWith(form.Bounds);
每个屏幕都有一个返回矩形的Bounds属性。 您可以使用IntersectsWith()函数来确定窗体是否在屏幕中。
Screen screen = Screen.FromControl(form);
您可以使用“屏幕”对象:System.Windows.Forms.Screen
开始玩这样的事情:
Screen[] screens = Screen.AllScreens; for (int i = 0; i < screens.Length ; i++) { Debug.Print(screens[i].Bounds.ToString()); Debug.Print(screens[i].DeviceName); Debug.Print(screens[i].WorkingArea.ToString()); }
它可能会得到你所需要的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。