1

我正在尝试在屏幕的右上角开始表单的位置。但我也想在程序运行的任何屏幕上执行此操作。那么我该怎么做呢?我应该使用屏幕分辨率吗?

4

3 回答 3

8

尝试使用Screen.AllScreensProperty 遍历所有可用Screens以查找表单的左上角,然后将 Forms 位置设置为 A created from - Forms和Property。不幸的是,我没有可用的双屏系统来验证它是否可以在主屏幕以外的屏幕上工作,所以看看这样的东西是否适合你。Bounds ContainsPointScreen.Bounds.RightWidthScreen.Bounds.Top

public Form1()
{
    InitializeComponent();
    this.StartPosition = FormStartPosition.Manual;
    foreach (var scrn in Screen.AllScreens)
    {
        if (scrn.Bounds.Contains(this.Location))
        {
            this.Location = new Point(scrn.Bounds.Right - this.Width, scrn.Bounds.Top);
            return;
        }
    }
}
于 2013-09-17T03:46:50.700 回答
3
//Get screen resolution
Rectangle res = Screen.PrimaryScreen.Bounds; 

// Calculate location (etc. 1366 Width - form size...)
this.Location = new Point(res.Width - Size.Width); 
于 2015-08-09T14:32:20.627 回答
0

这将使表单从屏幕的左上角开始。

Form form1 = new Form();
form1.StartPosition = FormStartPosition.Manual;
form1.Location = new Point(0,0); // new Point(x position on screen, y position on screen)

请记住,您指定了表单的左上角。因此,只需进行数学运算即可将其放在您想要的位置。

这将是如何获得主屏幕的分辨率:

Rectangle resolution = Screen.PrimaryScreen.Bounds;

Screen.AllScreens或者您可以使用该属性获取所有屏幕的集合。

于 2013-09-17T02:37:16.127 回答