我想使用以下方法设置表单的位置:
this.Location = new Point(2908, 953);
在构造函数中。构造函数似乎忽略了它。我希望它在程序的整个执行过程中只到该位置一次,并在程序启动时让它正确执行。
我该怎么办?
我想使用以下方法设置表单的位置:
this.Location = new Point(2908, 953);
在构造函数中。构造函数似乎忽略了它。我希望它在程序的整个执行过程中只到该位置一次,并在程序启动时让它正确执行。
我该怎么办?
为了从构造函数设置表单的初始位置,您需要将Form.StartPosition
默认值更改为FormStartPosition.Manual
public MainForm()
{
InitializeComponent();
StartPosition = FormStartPosition.Manual;
Location = new Point(2908, 953);
}
尽管您不再需要替代方案;使用构造函数的替代方法可能是更改表单在Form.Load
事件处理程序中的位置。
正如匿名用户指出的那样,正确的方法是使用 StartPositon 属性,但我发现(很难)这也有效:
IntPtr h = this.Handle; // to make Location=... work
Location = new Point(200,10);
有人愿意解释它为什么起作用吗?(h 在构造函数中的任何地方都没有使用,顺便说一句)