我有一个应用程序,我在Windows XP中开发的VS2008中已经有一段时间了,它有一些放置在特定位置的面板,因此边框排列整齐,看起来很漂亮。现在我已经切换到7开发,据我所知,其他所有东西都在同一个地方,但它会将两个面板移动一点点,一个向上移动一个向下移动并弄乱我漂亮的边界。因为它在XP中仍能正常工作,我假设这是一个7问题或VS问题7.任何人都知道最新情况或是否可以修复?
答案 0 :(得分:1)
所以我明白了。事实证明客户区域并不窄,但是标题栏是对话框边框的一部分,在XP和7中有两种不同的大小。由于面板位于mdi子区,边框未显示,因为它位于父级,边框标题栏部分的大小对我的面板相对于父级显示的位置产生了影响。为了解决这个问题,我在子节点上将FormBorderStyle设置为none,并将面板重新定位到没有该标题栏的正确位置。它现在在XP和7中看起来一样,因为变量条大小消失了。
答案 1 :(得分:0)
Windows 7中的Windows具有更宽的边框。
您的表单可能具有基于Windows XP边框宽度的固定大小。
因此,在Windows 7中,表单的客户区域将更窄 如果这实际上是问题所在,您可以通过在构造函数中设置表单的ClientSize属性来解决它当前在XP中的值。
如果这不是问题,请发布更多详情。
答案 2 :(得分:0)
您是否需要将面板按像素定位? .NET 2.0引入了FlowLayoutPanel和TableLayoutPanel,用于可调整元素的定位。
TableLayoutPanel是两者中更有用的。您可以创建行和列,可以相互自动调整大小或按比例调整大小。您将TableLayoutPanel停靠在表单中或将其锚定到所有四个方面。然后,用户可以调整表单大小,并随之调整大小。
即使您的面板具有特定尺寸,您也可以将它们固定在侧面或角落,这样即使用户调整表单大小,它们也会粘在一边。