C# 从右上角开始

C# 从右上角开始,c#,winforms,C#,Winforms,我试图在屏幕的右上角开始一个表单的位置。但我也希望在程序运行的任何屏幕上执行此操作。那我该怎么做呢?我应该使用屏幕分辨率吗?这将使表单从屏幕的左上角开始 Form form1 = new Form(); form1.StartPosition = FormStartPosition.Manual; form1.Location = new Point(0,0); // new Point(x position on screen, y position on screen) 请记住,您指定了表

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

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

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
属性获取所有屏幕的集合。

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

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
属性获取所有屏幕的集合。

尝试使用该属性遍历所有可用的
屏幕
,以查找哪个屏幕位于表单的左上角,然后将表单位置设置为从
Screen.Bounds.Right
创建的
-表单
宽度
Screen.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;
        }
    }
}
尝试使用该属性遍历所有可用的
屏幕
,以找到表单的左上角点,然后将表单位置设置为从
Screen.Bounds.Right
创建的
-表单
宽度
Screen.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;
        }
    }
}

这很奇怪,因为只有正确设置表单的位置,才能在指定的屏幕上运行表单?由于所有屏幕都使用相同的
坐标系
,只有一个屏幕的
左上方
点位于
(0,0)
这很奇怪,因为只有在正确设置表单的位置后,才能在指定屏幕上运行表单?因为所有屏幕都使用相同的
坐标系
,所以只有一个屏幕的
左上方
点位于
(0,0)
但我正在寻找右上方。我如何知道在每个可能的屏幕大小/分辨率上右上角的位置?要使窗体的右侧与屏幕齐平,x位置将是(屏幕宽度-窗体宽度),y位置仍然是0。但我正在寻找右上角。我如何知道在每个可能的屏幕尺寸/分辨率上右上角的位置?要使窗体的右侧与屏幕齐平,x位置将是(屏幕宽度-窗体宽度),y仍然是0。