我正在为非营利性业务制作屏幕保护程序。除了主桌面使用双显示器外,我已完成所有工作并且工作正常,并且Windows窗体不会显示在两个显示器上。我的代码如下(检测到正确的双显示器分辨率)。表格大小正确报告双显示器 - 但实际表格在第二台显示器上不显示为扩展。
我的下面的代码是在Form_Load事件中。任何帮助使这项工作正常将不胜感激。
Screen[] monitors = Screen.AllScreens;
foreach (Screen screen in monitors)
{
totalwidth += screen.WorkingArea.Width;
}
this.Size = new Size(totalwidth, ClientSize.Height);
你需要做的比你拥有的更多。
实质上,您必须为每个屏幕创建一个新表单
程序
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;
...
}
屏幕保护程序有更多警告,但这应该指向正确的方向
另外,你可能只是传入边界而不是索引