双显示器上的一种形式,全屏

问题描述 投票:1回答:1

我正在为非营利性业务制作屏幕保护程序。除了主桌面使用双显示器外,我已完成所有工作并且工作正常,并且Windows窗体不会显示在两个显示器上。我的代码如下(检测到正确的双显示器分辨率)。表格大小正确报告双显示器 - 但实际表格在第二台显示器上不显示为扩展。

我的下面的代码是在Form_Load事件中。任何帮助使这项工作正常将不胜感激。

Screen[] monitors = Screen.AllScreens;

foreach (Screen screen in monitors)
{
    totalwidth += screen.WorkingArea.Width;
}

this.Size = new Size(totalwidth, ClientSize.Height);
c# .net
1个回答
1
投票

你需要做的比你拥有的更多。

实质上,您必须为每个屏幕创建一个新表单

程序

for (int i = Screen.AllScreens.GetLowerBound(0);  
     i <= Screen.AllScreens.GetUpperBound(0); i++)
       System.Windows.Forms.Application.Run(new frmScreenSaver(i));

示例表单构造函数

public frmScreenSaver(int scrn)
{
  ...
  ScreenNumber = scrn;
  ...
}

示例表单OnLoad事件

private void frmScreenSaver_Load(object sender, System.EventArgs e)
{
  ...
  // fit the screen
  Bounds = Screen.AllScreens[ScreenNumber].Bounds;
  // hide the cursor... seems appropriate
  Cursor.Hide(); 
  // make it TopMost
  TopMost = true;
  ...
}

屏幕保护程序有更多警告,但这应该指向正确的方向

另外,你可能只是传入边界而不是索引

© www.soinside.com 2019 - 2024. All rights reserved.