我有一个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类和静态辅助方法,他们可能会帮助你。
MSDN链接 ,没有太多的..我建议在自己的代码搞乱。
如果你还记得窗户的位置和大小,那就够了。 当您将位置设置为之前使用的位置时,如果碰巧位于第二台显示器上,则会返回到此位置。
例如,如果您有两台显示器,两台显示器的尺寸均为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()); }
它可能会得到你所需要的
总结以上是内存溢出为你收集整理的如何确定我的.NET Windows Forms程序运行在哪个监视器上?全部内容,希望文章能够帮你解决如何确定我的.NET Windows Forms程序运行在哪个监视器上?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)