替代构造函数来设置表单位置?

时间:2013-09-12 02:01:25

标签: c#

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

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

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

我该怎么办?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

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

有人在乎解释它为何有效吗? (h不在构造函数中的任何地方使用,BTW)