我在VB 6中的Windows应用程序有一个包含很多控件的表单。如果客户端环境中的屏幕尺寸较小,则不会显示大多数控件。 我想要做的是为用户提供垂直和水平滚动条,以便用户可以滚动所有控件。 有谁知道如何实现这个?
P.S。请不要提供仅显示滚动值标签的示例:)
答案 0 :(得分:4)
一种方法是使用Windows API调用打开表单的滚动条。这与使用ScrollBar控件不同;例如,打开表单自己的滚动条可以防止滚动条干扰Tab键顺序。
这是一个很好的页面,解释了如何执行此操作以及帮助程序类:
答案 1 :(得分:4)
我喜欢David的回答,但是如果你想用滚动条做这个,首先,你需要把所有的控件放到一个适合它们的框架中。你想要移动1个控件而不是“很多控件的地狱”。第二步将滚动条放入表单中,并在 Form_Resize 事件中添加一些代码以使用表单调整滚动条的大小。调整滚动条的大小后,您需要进行一些数学设置以设置最大, 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
您还需要错误处理代码。我是一个懒惰的示例编码器。