【问题标题】:Vista and Windows 7 borders cut off form contentVista 和 Windows 7 边框截断表单内容
【发布时间】:2010-12-26 12:01:08
【问题描述】:

Windows 7 和 Vista 上的表单的边框比 XP 上的要粗。因此,一些跨越表单整个高度或宽度的内容将被截断。有没有一种简单的方法来解决这个问题,或者我的应用程序的所有表单都需要调整大小以适应这个问题吗?

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

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

【问题讨论】:

    标签: forms windows-7 windows-vista border


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我知道 VB.Net 有一个 ClientSize 属性。 VB6是否有等价物?好像没找到。
    • 可以,但是不能设置它的值,要计算边框的大小,设置正常的大小属性。将解决方案编辑为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2017-10-26
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多