3

我想使用以下方法设置表单的位置:

this.Location = new Point(2908, 953);

在构造函数中。构造函数似乎忽略了它。我希望它在程序的整个执行过程中只到该位置一次,并在程序启动时让它正确执行。

我该怎么办?

4

2 回答 2

4

为了从构造函数设置表单的初始位置,您需要将Form.StartPosition默认值更改为FormStartPosition.Manual

public MainForm()
{
    InitializeComponent();
    StartPosition = FormStartPosition.Manual;
    Location = new Point(2908, 953);
}

尽管您不再需要替代方案;使用构造函数的替代方法可能是更改表单在Form.Load事件处理程序中的位置。

于 2013-09-12T02:10:50.640 回答
1

正如匿名用户指出的那样,正确的方法是使用 StartPositon 属性,但我发现(很难)这也有效:

IntPtr h = this.Handle; // to make Location=... work
Location = new Point(200,10);

有人愿意解释它为什么起作用吗?(h 在构造函数中的任何地方都没有使用,顺便说一句)

于 2016-06-14T15:03:26.430 回答