Vb6 如何在visual basic 6中使用滚动条?

Vb6 如何在visual basic 6中使用滚动条?,vb6,scrollbar,windows-applications,Vb6,Scrollbar,Windows Applications,我在VB6中的Windows应用程序有一个包含大量控件的窗体。如果客户端环境中的屏幕尺寸较小,则大多数控件不会显示。 我想做的是为用户提供一个垂直和水平的滚动条,以便用户可以滚动所有控件。 有人知道如何实现这一点吗 注意:请不要提供仅显示标签以显示滚动值的示例:)一种方法是使用Windows API调用打开窗体的滚动条。这与使用滚动条控件不同;例如,打开窗体自己的滚动条可以防止滚动条干扰选项卡顺序 下面是一个很好的页面,介绍了如何执行此操作,以及一个帮助器类: 我喜欢David的答案,但如果您想

我在VB6中的Windows应用程序有一个包含大量控件的窗体。如果客户端环境中的屏幕尺寸较小,则大多数控件不会显示。 我想做的是为用户提供一个垂直和水平的滚动条,以便用户可以滚动所有控件。 有人知道如何实现这一点吗


注意:请不要提供仅显示标签以显示滚动值的示例:)

一种方法是使用Windows API调用打开窗体的滚动条。这与使用滚动条控件不同;例如,打开窗体自己的滚动条可以防止滚动条干扰选项卡顺序

下面是一个很好的页面,介绍了如何执行此操作,以及一个帮助器类:


我喜欢David的答案,但如果您想使用滚动条实现这一点,首先,您需要将所有控件放入适合它们的框架中。你想移动一个控件,而不是“一大堆控件”。其次,将滚动条放入表单中,并在表单_Resize事件中添加一些代码,以便使用表单调整滚动条的大小。调整滚动条大小后,您需要做一些数学运算来设置MaxSmallChangeLargeChange属性。我正在显示Min属性,以便您知道它不会更改,只需在设计器中设置它即可。这个例子只使用了一个水平滚动条,因为我太懒了,不能包含一个垂直滚动条。最后,向scrollbar 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
您还需要错误处理代码。我是一个懒惰的示例编码员