我想使用以下方式设置表单的位置:
this.Location = new Point(2908, 953);
在构造函数中。构造函数似乎忽略了它。我希望它在整个程序执行期间只去一次该位置,并让它在程序启动时正确执行。
我该怎么办?
答案 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)