如何在第二个屏幕上显示表单?

时间:2018-02-07 07:50:20

标签: c# winforms multiple-monitors

我正在创建一个C#表单应用程序。我想在第二个屏幕上显示初始表单。我想在第一个屏幕上打开其他表单页面。两个屏幕之间存在分辨率差异。如何在第二个屏幕上显示初始表格,在主屏幕上显示其他五个表格?

2 个答案:

答案 0 :(得分:3)

在窗户定位方面,没有"两个屏幕"但只有一个"工作区"。
这意味着如果您有两个相同的全高清屏幕,则工作区域为3840x1080(减去任务栏等等)。
如果您在Left = 200Top = 100放置一个窗口,它将被放置在左侧屏幕左侧200像素处,如果您将其放置在Left = 2120Top = 100它将被放置在右侧屏幕上的相同位置 对于所有工作,您需要使用StartPosition = FormStartPosition.Manual

答案 1 :(得分:0)

我已经使用过这种方法,希望它可以帮到你:

public void MaximizeToMonitor(Form frm, int monitorIndex)
    {
        try
        {
            Screen screen = Screen.AllScreens[monitorIndex];
            if(screen != null)
            {
                frm.WindowState = FormWindowState.Normal;
                var workingArea = screen.WorkingArea;
                frm.Left = workingArea.Left + 10;
                frm.Top = workingArea.Top + 10;
                frm.Width = workingArea.Width + 10;
                frm.Height = workingArea.Height + 10;
                frm.WindowState = FormWindowState.Maximized;
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show($"Monitor does not exists. {Environment.NewLine}{ex.Message}");
        }
    }