2012-11-19 49 views
6

当我在机器上构建窗体时看起来很好,但是当它在另一台计算机上编译时,窗体本身的大小是错误的。标签被移动并且东西不再正确对齐。窗体在另一台计算机上看起来不同

如何确保在任何计算机上的所有内容都保持一致?

我试着将AutoScaleMode设置为none,它有一点帮助,但标签部分位于相应文本框的下面。

+0

控件的大小和放置方式如何?我从来没有看到我的表格在不同的分辨率下结束了。 – Alex

+0

两台机器上的DPI设置可能不同。 –

+0

如何对控件进行分组?你使用任何布局控件?你在使用锚吗? –

回答

5

字体或DPI不同。

而我从来没有真正找到方法说AutoScaleMode = (most appropriate of font or dpi)

但试试AutoScaleMode = DPIAutoScaleMode = Font其中一个他们应该工作。

我们从来没有找到一种可靠的方法来处理这个问题。我们的工作场所用于在所有工作站上执行DPI,但之后这种情况发生了变化。处理它的最好方法是确保使用FlowLayoutPanel或TableLayoutPanels来布局控件,而不是绝对定位控件。

+0

如果转到控制面板\外观和个性化\显示,您可以选择100%,125%和150%之间的值。我假设这改变了DPI。字体在不同的机器上会有什么不同? – NMunro

+0

你说得对。这是新闻部;在我看来,微软只是用一种奇怪的方式说出来。您可以更改对话框中使用的系统字体,例如[this](http://www.sevenforums.com/tutorials/1175-fonts-change.html) – hometoast

+0

有没有办法判断他们是否更改了DPI或字体?我最喜欢的解决方案是一个消息框,告诉他们停止与事物搞砸。大声笑 – NMunro

0

我最近遇到了这个问题,事实证明,在125%或中等设置下编译会使得二进制免疫力在100%或150%的变化下都是免疫的。您仍然需要将AutoScaleMode设置为无。

0

即使话题已经结束,我的两美分,因为我面临一些相同的问题,形式有不同的大小(在我的情况下更大),但控制在固定时相同。我只是通过给原始形状比控件更小的尺寸来解决它,并允许它自动增长。

我也应用了这篇文章的指导原则(How to write WinForms code that auto-scales to system font and dpi settings?),但没有解决我的问题。

相关问题