在我的电脑上,我有两个显示器(常规显示器和USB显示器),我不会在usb显示器上打开我的应用程序......任何想法?
答案 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
移动它。