C# 运行时,设计模式下的窗体大小不相同

C# 运行时,设计模式下的窗体大小不相同,c#,winforms,C#,Winforms,我已经开发winform应用程序很长一段时间了,我从来没有注意到一些非常简单、几乎基本的东西,所以我回到了基础,我制作了一个带有按钮的大表单,我注意到表单的大小在运行时会完全改变: 设计 跑 如您所见,表单大小变小,按钮被隐藏 这些属性是AutoSize false和AutoScaleMode Font的默认属性 这个问题类似于,但遗憾的是,答案没有用处,因为建议是默认的 注意:当我的笔记本连接到属性窗口中的另一个显示器时,会自动解决此问题。设置按钮“锚定”(右*,下)如果其中一个可以解决问题,

我已经开发winform应用程序很长一段时间了,我从来没有注意到一些非常简单、几乎基本的东西,所以我回到了基础,我制作了一个带有按钮的大表单,我注意到表单的大小在运行时会完全改变:

设计 跑 如您所见,表单大小变小,按钮被隐藏

这些属性是AutoSize false和AutoScaleMode Font的默认属性

这个问题类似于,但遗憾的是,答案没有用处,因为建议是默认的


注意:当我的笔记本连接到属性窗口中的另一个显示器时,会自动解决此问题。

设置按钮“锚定”(右*,下)

如果其中一个可以解决问题,您可以尝试以下步骤:

  • 如果问题仅在您连接其他显示器时出现,请尝试在连接时更改设置,这是否也会发生在其他电脑上?或者尝试使用另一台PC或安装VM(虚拟机)在那里运行它
  • 检查DPI设置,例如在Windows 7中,是
    较小-100%(默认值)
    ,还是
    中等-125%
    ,还是
    较大-150%
  • 尝试为每种情况将窗体的属性
    AutoScaleMode
    设置为
    Dpi
    Font
  • 如果问题仍然存在,请在的帮助下尝试创建示例表单
  • 我曾经尝试使用
    FlowLayoutPanel
    控件来排列一些相同的元素,例如按钮、图片框。如果可能,在适用时尝试使用它
  • 最后一种方法是尝试
    WPF
    ,一开始它看起来很复杂,但您很快就会习惯它,并发现
    Winforms
    没有的有趣的东西。您可以将控件排列到网格(类似于表格),然后将控件毫无问题地放置到每个单元格中。如果你打算向ABC学习,我的建议是:

  • 如果你需要更多的帮助,请留下评论,我会回来看看我是否能提供更多的帮助。因为我以前在创建应用程序时遇到了这个障碍:)

    您使用过layoutcontroller吗。我认为布局可以解决您的问题以“最小大小”属性输入表单大小这只是Winforms中dpi虚拟化问题之一。创建一个dpiAware应用程序已经有十多年的历史了,但自从Win10以来变得尤为重要,因为它不再选择96 dpi(也称为100%)作为默认值。关于它有很多重复的问题。考虑到没有人真正知道是什么导致了这个问题,这个问题似乎需要更多的答案。我们最终会让谷歌的点击率达到饱和。如前所述,dpi意识在很长一段时间内都很重要,当您按照链接Q+a中的指导进行操作时,dpi意识将变得非常重要。在Win7机器上,您唯一应该关心的是,您的窗口将适合较小的显示器。它可以调整大小,这应该会有所帮助。从dpi向下扩展到较低的dpi不是很好,请留出足够的空间。Fwiw,最近的VS2017更新现在允许将VS切换到dpi虚拟化模式,因此您将以100%的速度进行设计,并且UI只需要向上扩展。建议说,放大比缩小容易得多。它应该在最下面。是的,我很笨:)为什么答案中有一个*?另外,@АСССССБСБССБССББССццццц)如果您在答案中添加了任何内容,请将其放在答案中,而不是评论中。