我在 VB 6 中的 Windows 应用程序有一个包含大量控件的表单。如果客户端环境的屏幕尺寸较小,则大多数控件都不会出现。我想做的是为用户提供一个垂直和水平滚动条,以便用户可以滚动所有控件。任何人都知道如何实现这一点?
PS请不要提供仅显示标签以显示滚动值的示例:)
我在 VB 6 中的 Windows 应用程序有一个包含大量控件的表单。如果客户端环境的屏幕尺寸较小,则大多数控件都不会出现。我想做的是为用户提供一个垂直和水平滚动条,以便用户可以滚动所有控件。任何人都知道如何实现这一点?
PS请不要提供仅显示标签以显示滚动值的示例:)
我喜欢大卫的回答,但如果你想用滚动条做到这一点,首先,你需要将所有控件放入适合它们的框架中。您想要移动 1 个控件,而不是“大量控件的地狱”。其次,将滚动条放入表单中,并在Form_Resize事件中添加一些代码来调整滚动条的大小。调整滚动条的大小后,您需要做一些数学运算来设置Max、SmallChange和LargeChange属性。我展示Min属性只是为了让您知道它永远不会改变,只需在设计器中设置它即可。此示例仅使用水平滚动条,因为我也懒得包含垂直滚动条。最后,将代码添加到滚动条 Change 事件以移动框架。
Private Sub Form_Resize()
HScroll1.Move 0, Me.ScaleHeight - HScroll1.Height, Me.ScaleWidth
HScroll1.Min = 0
HScroll1.Max = Frame1.Width - Me.ScaleWidth
HScroll1.SmallChange = HScroll1.Max / 100
HScroll1.LargeChange = HScroll1.Max / 10
End Sub
Private Sub HScroll1_Change()
Frame1.Left = -HScroll1.Value
DoEvents ' this is not strictly necessary, but smooths the scolling some
End Sub
您还需要错误处理代码。我是一个懒惰的示例编码器。
一种方法是使用 Windows API 调用打开表单的滚动条。这与使用 ScrollBar 控件不同;例如,打开表单自己的滚动条可以防止滚动条干扰标签顺序。
这是一个很好的页面,解释了如何做到这一点,以及一个帮助类: