c# winfrom 子窗体分屏显示

参考博客:https://blog.csdn.net/kailan818/article/details/8517126

实现代码:

private void button1_Click(object sender, EventArgs e)
        {
            var frmChild = Application.OpenForms["frmChild"];
            if (frmChild != null)
            {
                frmChild.Activate();
            }
            else
            {
                frmChild frm = new frmChild();
                frm.Owner = this;//申明当前窗体是子窗体
                ShowOnMonitor(frm);
                frm.Show();
            }
        }

        private void ShowOnMonitor(frmChild frm)
        {
            Screen[] sc = Screen.AllScreens;
            if (sc.Length > 1)
            {
                //获取当前屏幕
                Screen CurrentScreen = Screen.FromControl(this);
                //获取当前鼠标所在的屏幕
                //Screen CurrentScreen = Screen.FromPoint(new Point(Cursor.Position.X, Cursor.Position.Y));
                var child = sc.Where(it => it.DeviceName != CurrentScreen.DeviceName).FirstOrDefault();
                frm.StartPosition = FormStartPosition.Manual;
                frm.Location = new Point(child.Bounds.Left, child.Bounds.Top);

            }
            // If you intend the form to be maximized, change it to normal then maximized.  
            frm.WindowState = FormWindowState.Normal;
            frm.WindowState = FormWindowState.Maximized;
        }

demo地址:https://gitee.com/cainiaoA/winformSplit

posted @ 2019-10-11 16:26  世人皆萌  阅读(1069)  评论(0编辑  收藏  举报