我有一个C#应用程序,如果有多个屏幕,应该在第二个屏幕上打开一个进程。我无法让它发挥作用。有什么想法吗?
Array screens = Screen.AllScreens;
if (screens.Length > 1)
{
// open in the second monitor
}
else
{
System.Diagnostics.Process.Start(InputData);
}
它应该与else
中的数据相同,但只需在现在为空if
的第二个监视器上打开它。
答案 0 :(得分:3)
没有标准方法可以指定应用程序在启动时显示在哪个屏幕上。但是,您可以:
答案 1 :(得分:2)
您可以通过更改输入流程的MainForm来实现此目的,如下所示
public Form1()
{
this.StartPosition =FormStartPosition.Manual;
InitializeComponent();
Screen sndSc = Screen.AllScreens[1];
if (sndSc.Primary)
{
sndSc = Screen.AllScreens[0];
}
this.Height = sndSc.WorkingArea.Height;
this.Width = sndSc.WorkingArea.Width;
this.Location = sndSc.WorkingArea.Location;
}
答案 2 :(得分:1)
当您放置窗户时,您应该做同样的事情。
要在任何显示器上显示窗口,您应该根据显示器的坐标重新定位它。
假设您有两台显示器,均为1920x1080,并且它们并排排列。在这种情况下,要在第二个屏幕上显示表单,您必须将表单的X坐标(或Left
属性,我的猜测)设置为超过1920.