我有一个最初使用.Net 2.0框架在Visual Studio Professional 2005中创建的.Net应用程序。
最近,我在Visual C#Express 2010中打开了这个项目,做了一些小改动,并使用.Net framework 4.0构建了它。
除了一个非常烦人的部分外,一切都像魅力一样。当我在具有1920x1200屏幕的HP EliteBook 8740w上运行应用程序时,一组GUI控件会随机移动,以便它们彼此重叠。在具有1900x1080分辨率的外部显示器的Windows 7 64位工作站上运行时,此错误不会显示。在1024x768分辨率的Windows XP笔记本电脑上运行时也没有显示。
我尝试将1600x1200外接显示器连接到EliteBook,但错误也显示在那里。
混乱的控件是一组组合框,numericUpAndDowns和标签,放在表格布局容器中,然后放在标签页控件的标签页上。
我尝试从头开始创建一个新的标签页控件和表格布局容器,然后将组合框等移动到新的表格布局容器中,但错误占优势。
我真的很感激这方面的一些帮助,因为我不知道还有什么可以尝试。我开始怀疑EliteBook上的图形有问题,但是,再一次,其他一切在屏幕上呈现得很好。
谢谢, Fredrik Israelsson
---编辑---
感谢您的快速解答。在我有机会看到它们之前,我想我自己解决了这个问题。偶然发现了一个关于为什么Visual Studio会自动更改控件大小的线程,尽管有人将锚点和停靠属性设置为None。其中一个答案提到了AutoScaleMode属性。我在主应用程序窗口中将AutoScaleMode从Font更改为None,并且没有GUI在我的所有计算机上都能很好地呈现。
再次感谢!
/ Fredrik Israelsson
答案 0 :(得分:4)
我怀疑这是因为这两台机器有不同的DPI设置。 Windows Forms总是令人痛苦。
以下是一些可能有用的链接。
http://msdn.microsoft.com/en-us/library/ms229605.aspx
http://www.sellsbrothers.com/writing/winformsAutoScaling.htm
答案 1 :(得分:0)
它可能与硬件加速有关。您的应用程序是WinForms还是WPF? 在Win7 64位上使用VS2010时,我遇到了非常奇怪的行为,因为我在构建应用程序时尝试使用硬件加速。
通过改变视觉体验来提高绩效 您可能在VS2010中遇到硬件加速问题。由于这个原因,我在渲染使用WPF构建的应用程序时遇到了问题。
如果这不能解决您的问题,请转到您的视频卡设置(nvidia或amd catalyst)并在应用程序无法正确绘制自己的计算机上执行“重置设置”。然后再试一次。