如何确定我的应用程序将在哪台显示器上运行? C#

时间:2015-02-06 07:14:34

标签: c#

在我的电脑上,我有两个显示器(常规显示器和USB显示器),我不会在usb显示器上打开我的应用程序......任何想法?

2 个答案:

答案 0 :(得分:1)

您必须使用Screen课程。它提供有关屏幕数量的信息,其中一个是主要屏幕等。它还具有以下方法Screen.FromControl。它返回有关包含应用程序最大部分的屏幕的信息。您可以在启动时运行它。如果方法返回 usb display ,则应将应用程序移动到第二个屏幕。另请参阅此question

这是一个验证当前屏幕是否为主要屏幕的示例。如果没有找到它并根据找到的主屏幕的边界更改应用程序的位置。您还可以使用DeviceName来确定当前屏幕是否正确。

var current = Screen.FromControl(this);

if (!current.Primary) //you can also use device name e.g." s.DeviceName.Contains("...")
{
    var primary = Screen.AllScreens.Single(s => s.Primary);
    SetBounds(primary.Bounds.Left, primary.Bounds.Top, Width, Height);
}

答案 1 :(得分:0)

您应首先获得所需监视器的矩形:

Rectangle rect = Screen.AllScreens[n].WorkingArea; //n stands for the index of monitor you'd like to use

然后,您应调用Windows API SetWindowPos以通过Process.MainWindowHandle移动它。