我正在使用.NET Framework2.0开发一个C#应用程序。
问题是,在我客户的PC上,控件会扩展,布局会发生变化(控件的位置会发生变化),有时按钮会完全丢失。即使在有2-3个TextBoxes,2-3个按钮和一些标签的表单上也会发生这种情况。我做了很多调查。我试图在窗体的resize事件中显示一条消息。但它不会被调用。再深入一点,似乎在Designer.cs文件中,尽管表单调用了ResumeLayout (false),但这会导致控件的扩展/部署。
我的客户在他的戴尔笔记本电脑上使用Windows XP professional。他能够在安装了Windows XP professional的其他笔记本电脑上重现此问题。但不是在其他OSes (如Windows XP Home或Windows Vista)中。在我使用Windows XP professional的桌面上,它是不可重现的。
如何解决这个问题?
发布于 2009-09-15 00:24:47
你确定这和操作系统有关吗?这听起来更像是dpi的问题。‘'Normal’是96 dpi。如果表单设计为96dpi,在不同的设置下,它可能会看起来不同。
有关如何在XP中检查/更改dpi设置的信息,请参阅this article。
编辑:我忘了提一下,你可以使用TableLayoutPanel Control来布局你的表单。使用自动调整大小功能将有助于在任何dpi设置下保持事物看起来“正常”。
发布于 2009-09-15 00:25:49
这可能是由于Windows XP中的DPI设置造成的。
如果你使用的是标准的(96) DPI设置,但它们是使用一个替代的设置(即: 120)设置的,那么它通常会弄乱控件的布局。
处理这个问题的“正确”方法是尝试使用可以根据需要调整大小的布局元素自动构建布局。这在Windows窗体中很困难(这也是WPF修复的问题之一)。
https://stackoverflow.com/questions/1424523
复制相似问题