用于设置窗体位置的构造函数的替代方法

本文关键字:方法 构造函数 用于 窗体 位置 设置 | 更新日期: 2023-09-27 18:30:56

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

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

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

我该怎么办?

用于设置窗体位置的构造函数的替代方法

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

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

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

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

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

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