当我在我的机器上构建表单时,它看起来很好,但是当它在不同的计算机上编译时,表单本身的大小是错误的。移动标签并且不再正确对齐。
我如何保证任何计算机上的所有内容都一样?
我尝试将AutoScaleMode
设置为无,但它有所帮助,但标签部分位于相应的文本框下方。
答案 0 :(得分:5)
字体或DPI不同。
我从未真正找到说AutoScaleMode = (most appropriate of font or dpi)
的方法。
但请尝试AutoScaleMode = DPI
和AutoScaleMode = Font
。 其中一个应该有用。
我们从来没有找到一种可靠的方法来处理这个问题。我们的工作场所用于在所有工作站上执行DPI,但此后发生了变化。处理它的最佳方法是确保使用FlowLayoutPanel或TableLayoutPanels来布局控件,而不是绝对定位控件。
答案 1 :(得分:0)
我最近遇到了这个问题,事实证明,在125%或中等设置下进行编译可以使二进制免受100或150%的变化影响。您仍然需要将AutoScaleMode设置为None。
答案 2 :(得分:0)
即使主题已经结束,我的两分钱因为我遇到了同样的问题,表单有不同的大小(在我的情况下更大)但是控件在修复时相同。我只是通过给予原始形状比控件更小的尺寸来解决它,并允许它自动增长。
我也应用了这篇文章的指南(How to write WinForms code that auto-scales to system font and dpi settings?),但它没有解决我的问题。