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;
1

但是如果需求是界面出现在右边屏幕的正中间(如下图所示)就必须按照下面的代码,重写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);
    }

作者:做人要有比数
来源:CSDN
原文:https://blog.csdn.net/ch_609583349/article/details/82781644
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/baidu_38341835/article/details/84776741