C# 如何初始化窗体,使其显示在与默认值不同的位置,而不显示为移动?

C# 如何初始化窗体,使其显示在与默认值不同的位置,而不显示为移动?,c#,.net,winforms,forms,C#,.net,Winforms,Forms,我在更改表单的默认位置时花了很多时间 我试图在表单构造函数中更改它,但是我对位置的更改不知怎么被覆盖了。我甚至尝试在表单加载事件中更改它,但没有骰子。WinForms的一些其他功能正在用一些默认的建议位置覆盖我想要的位置。到目前为止,我知道它发生在加载事件和构造函数之后。我唯一的成功就是在活动中改变了它。但是如果我这样做,那么有时候总是,如果表单包含类似ReportViewer的内容,您可以看到表单在移动到我想要的位置之前,在WinForms想要放置它的位置上出现闪烁 有什么想法吗?您需要将表单

我在更改表单的默认位置时花了很多时间

我试图在表单构造函数中更改它,但是我对位置的更改不知怎么被覆盖了。我甚至尝试在表单加载事件中更改它,但没有骰子。WinForms的一些其他功能正在用一些默认的建议位置覆盖我想要的位置。到目前为止,我知道它发生在加载事件和构造函数之后。我唯一的成功就是在活动中改变了它。但是如果我这样做,那么有时候总是,如果表单包含类似ReportViewer的内容,您可以看到表单在移动到我想要的位置之前,在WinForms想要放置它的位置上出现闪烁

有什么想法吗?

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

然后,为了确保您不会看到任何闪烁,我还将表单设置为构造函数中的

另请参见:

最后,需要注意的是:通过手动指定窗体的位置,如果您的程序由具有意外屏幕大小或分辨率的用户和/或多个监视器运行,您可能会遇到问题。

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

然后,为了确保您不会看到任何闪烁,我还将表单设置为构造函数中的

另请参见:


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

这很有效,谢谢。我正在将自己的表单类链接到新的窗口管理器。因此,第一个窗口出现在默认位置,但后续窗口相对于打开它们的窗口层叠。我两全其美。再次感谢你的帮助@艾萨克:我不知道你设计的细节,可能你已经想到了,但是你正在重新创造的东西听起来非常像一个游戏。我不相信所有关于这是一种旧的或不受欢迎的表现风格的噪音,如果它最适合您的特定应用程序,您应该使用它。WinForms内置了对MDI应用程序的支持,其中MDI子窗体具有您描述的大多数内置行为。哎哟!对不起,我是新手。我甚至不知道这个选项的存在。我只是凭直觉飞行。我开始只是做标签。他们很可能会使用选项卡,但如果用户希望将选项卡移动到自己的窗口,他们可以。无论如何,现在我已经开始使用所有这些选项卡/窗口代码,真的很难停止再次感谢您的投入@艾萨克:没问题。几乎不可能一次性学习.NET Framework甚至WinForms提供的所有内容。然后,一旦你认为你已经掌握了所有这些,你将开始尝试学习Windows API。这就像用消防水龙带喝水一样。滚动您自己的解决方案并不都是坏事,您几乎可以保证在完成后更好地理解代码。祝你好运!此外,我只想说,大多数时候,我真的,真的希望gui以某种方式运行,我必须卷起袖子自己编写代码。过去我花了太多时间搜索别人编写的代码来满足我的需求,虽然有时我会找到解决方案,但花时间搜索或编码是否更有效还是个未知数。至少通过这种方式我在学习我想的东西。这很有效,谢谢。我正在将自己的表单类链接到新的窗口管理器。因此,第一个窗口出现在默认位置,但后续窗口相对于打开它们的窗口层叠。我两全其美。再次感谢你的帮助@艾萨克:我不知道你设计的细节,可能你已经想到了,但是你正在重新创造的东西听起来非常像一个游戏。我不相信所有关于这是一种旧的或不受欢迎的表现风格的噪音,如果它最适合您的特定应用程序,您应该使用它。WinForms内置了对MDI应用程序的支持,其中MDI子窗体具有您描述的大多数内置行为。哎哟!对不起,我是新手。我甚至不知道这个选项的存在。我只是凭直觉飞行。我开始只是做标签。他们很可能会使用选项卡,但如果用户希望将选项卡移动到i
他们有自己的窗户。无论如何,现在我已经开始使用所有这些选项卡/窗口代码,真的很难停止再次感谢您的投入@艾萨克:没问题。几乎不可能一次性学习.NET Framework甚至WinForms提供的所有内容。然后,一旦你认为你已经掌握了所有这些,你将开始尝试学习Windows API。这就像用消防水龙带喝水一样。滚动您自己的解决方案并不都是坏事,您几乎可以保证在完成后更好地理解代码。祝你好运!此外,我只想说,大多数时候,我真的,真的希望gui以某种方式运行,我必须卷起袖子自己编写代码。过去我花了太多时间搜索别人编写的代码来满足我的需求,虽然有时我会找到解决方案,但花时间搜索或编码是否更有效还是个未知数。至少这样我在学习我想的东西。