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

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

this.StartPosition = FormStartPosition.CenterScreen;

C#winform应用程序界面显示在分屏幕上_第2张图片
但是如果需求是界面出现在右边屏幕的正中间(如下图所示)就必须按照下面的代码,重写Onshown方法或者添加代码至OnLoad事件。
C#winform应用程序界面显示在分屏幕上_第3张图片

        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);
        }

你可能感兴趣的:(C#)