Vista和Windows 7边界切断了表单内容

时间:2009-12-14 16:48:41

标签: forms windows-7 windows-vista border

Windows 7和Vista上的表单具有比XP更厚的边框。结果,一些跨越表格的整个高度或宽度的内容将被切断。有没有一种简单的方法可以解决这个问题,还是需要调整我的应用程序的所有形式以适应这种情况?

更新:它似乎是表单大小的错误,而不是导致问题的边框。有关示例,请参阅以下图像。注意控件如何在右上角有正确的位置,但它们到达Windows 7中的每个窗体,而边框保留在XP中。相同的代码用于调整控件的大小和位置。

这是XP中表单的样子: alt text http://img504.yfrog.com/img504/1328/bordersxp.png

这是Windows 7中的相同形式: alt text http://img231.imageshack.us/img231/9171/borders7h.png

1 个答案:

答案 0 :(得分:1)

您应该以编程方式修复表单的大小,以确保客户端大小足以适应所有内容。您可以轻松计算表单的当前大小和客户端大小之间的差异,并按正确的数量增加/减少。

您可能希望在Form_Load中执行此操作。

在VB6中,客户端大小和宽度称为表单的ScaleWidth和ScaleHeight。设置这些值只会缩小比例,而不是调整表单大小,因此您必须进行计算,以便设置正常的宽度和高度属性。

BorderSize = Me.Width - Me.ScaleWidth
Me.Width = BorderSize + CorrectScaleWidth
//Same for height!