C#中设置窗体位置

5
我希望您能告诉我如何设置表单的位置。我尝试了下面这个方法:
this.Location = Point; 

或者:

Form2.Left = Point.X;
Form2.Top = Point.Y;
Form2.ShowDialog();

这个不起作用。我做错了什么?


1
什么出了问题?你的表单没有正确定位还是根本没有显示在屏幕上? - mynkow
6个回答

20
private void button1_Click(object sender, EventArgs e)
{
    var form2 = new Form();

    form2.StartPosition = FormStartPosition.Manual;
    form2.Left = 500;
    form2.Top  = 500;
    form2.ShowDialog();
}

1
这比使用new Point(x,y)更好,因为不需要添加对System.Drawing.dll的引用。 - T.Todua
如果Microsoft能够抛出一些通知异常(例如“threadAbort”异常),以便在未将“StartPosition”设置为手动时发现问题,那就太好了。这很烦人,因为你不知道为什么位置没有被设置。 - ephraim

1
要在程序中设置位置,您应该将 StartPosition 设置为 FormStartPosition.Manual,如下所示:
Form myform = new Form()
{
     Size = new Size(200,200),
     StartPosition = FormStartPosition.Manual,
     Location = new Point(10,10) // or Cursor.Position if you want to set it to cursor position
}

0
// Point(specify location of x, specify location of y)
// with object initializer
var frmUsers = new FrmUsers
{
    StartPosition = FormStartPosition.Manual, 
    Location = new Point(0, 0)
};

// or

var frmUsers = new FrmUsers();
frmUsers.StartPosition = FormStartPosition.Manual;
frmUsers.Location = new Point(0, 0);

请注意,仅包含代码的答案不视为完整。 - Ivan Kaloyanov

0

试试这个:

private void Form_Load(object sender, EventArgs e)
{
    this.SetDesktopLocation(x, y);
}

0

你的第一种方法无论如何都可以工作。

this.Location = new Point(/*XPosition*/, /*YPosition*/);

0

你可以这样设置:

form1.Location = new Point(4, 370);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接