C#winform应用程序界面显示在分屏幕上

最近碰到一个开发项目,该项目需要两块显示器(如下图所示),主屏幕用于显示网页,分屏幕用于显示客户端界面。该项目用到的客户端是用C# winform编写的。抛开客户端处理的业务逻辑不谈,主要谈谈在winform中如何让界面出现在第二块屏幕的中间。
在这里插入图片描述
Screen类
C#提供的Screen类可以解决界面位置问题:
-获取所有的屏幕对象:Screen sc[] = Screen.AllScreens;
-获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(this).DeviceName;
-获取当前屏幕对象:Screen CurrentScreen = Screen.FromControl(this);
如果只需要界面出现在左边屏幕正中间(如下图所示),那代码只需要这样写就行:

this.StartPosition = FormStartPosition.CenterScreen;

在这里插入图片描述
但是如果需求是界面出现在右边屏幕的正中间(如下图所示)就必须按照下面的代码,重写Onshown方法或者添加代码至OnLoad事件。
在这里插入图片描述

        protected override void OnShown(EventArgs e)
        {
            Screen[] sc= Screen.AllScreens;
            if (sc.Count() == 2)
            {
               //我的显示器sc[0]是第二块屏幕,
                this.Left = sc[0].Bounds.Left + (sc[1].Bounds.Width - this.Width) / 2;
                this.Top = (sc[0].Bounds.Height - this.Height) / 2;
            }
            base.OnShown(e);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值