如何将表单初始化为显示在与默认位置不同的位置而不显示它?

时间:2010-12-24 08:56:36

标签: c# .net winforms forms

我有时间更改表单的默认位置。

我试图在Form构造函数中更改它,但我对位置的更改会以某种方式被覆盖。我甚至尝试在Load形式的事件上更改它,但没有骰子。 WinForms的其他一些功能是用一些默认的建议位置覆盖我想要的位置。到目前为止,我知道它发生在Load事件之后和构造函数之后。我唯一的成功就是在Shown形式的事件上更改它。但是,如果我这样做,那么有时(总是如果表单包含类似ReportViewer的东西)你可以看到WinForms想要在它移动到我希望它去的位置之前放置的形式的闪烁。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您需要将表单的StartPosition property设置为“手动”。其他值(特别是“WindowsDefaultLocation”的默认值)将导致您指定的任何位置被覆盖正如您怀疑的那样,一个不同的价值。您可以在设计器中或通过表单构造函数中的代码设置此属性。

然后,为了确保您没有看到任何闪烁,我也在构造函数中设置了表单Location property

另见:Setting the Screen Location of Windows Forms

最后,请注意:通过手动指定表单的位置,如果您的程序由具有意外屏幕大小或分辨率的用户和/或多个监视器运行,则可能会遇到麻烦。