我有一个在Windows XP上进行VS2008开发的应用程序,我已经开发了一段时间,它在特定的位置放置了一些面板,所以边框排列整齐,看起来很漂亮。现在我已经切换到在7中开发,据我所知,其他一切都在相同的位置,但它将两个面板移动了一点,一个上下移动,弄乱了我漂亮的边框。由于它在XP中仍然可以正常工作,我假设这是一个7的问题,或者是7的VS问题。有谁知道发生了什么,或者它是否可以修复?
发布于 2009-12-12 05:06:40
所以我想通了。原来客户区并没有变窄,但是作为对话框边框一部分的标题栏在XP和7中有两种不同的大小。由于面板在mdi子项中,其中边框没有显示,因为它在父项之下,边框的标题栏部分的大小影响了面板相对于父项的显示位置。为了解决这个问题,我在子对象上将FormBorderStyle设置为none,并将面板重新定位到没有标题栏的正确位置。它现在在XP和7中看起来是一样的,因为可变的条形尺寸消失了。
发布于 2009-12-11 02:43:12
Windows7的窗口有更宽的边框。
您的窗体可能具有基于Windows XP边框宽度的固定大小。
因此,在Windows7中,窗体的工作区将变窄。
如果这确实是问题所在,您可以通过在构造函数中将窗体的ClientSize属性设置为它在XP中的当前值来解决它。
如果这不是问题所在,请发布更多详细信息。
发布于 2009-12-11 02:50:11
您需要对面板进行像素定位吗?.NET 2.0引入了FlowLayoutPanel和TableLayoutPanel来调整元素的大小。
TableLayoutPanel是两个中更有用的一个。您可以创建行和列,它们可以按比例自动调整大小或按比例调整大小。您可以将TableLayoutPanel停靠在窗体中,或者将其锚定在窗体的四边。然后用户可以调整窗体的大小,所有内容都会随之调整大小。
即使您的面板具有特定的大小,您也可以将它们锚定到一侧或角落,以便即使用户调整窗体的大小,它们也会附着在一侧。
https://stackoverflow.com/questions/1882997
复制相似问题