读书人

窗体加入滚动条后如何改变控件位置

发布时间: 2013-03-14 10:33:15 作者: rapoo

窗体加入滚动条后怎么改变控件位置?
当窗体缩小后想要用滚动条滚动来显示其它控件,查到可以用这样的语句:


Private Sub VScroll1_Change()
For Each c In Form1.Controls
If c.Name <> "VScroll1" And c.Name <> "HScroll1" Then c.Top = c.Top - VScroll1.Value
Next
End Sub

但是运行后提示错误:'top'属性在运行时不可读,请问这个该怎么改了?
[解决办法]
搞复杂了。简单的方法是用一个 PictureBox 作滚动的容器:
在窗体上新增一个 PictureBox(假定命名为 Picture1)。
将 VScroll1 以外的需要被滚动的控件全都移入 Picture1 内(框选,Ctrl+X,选中 Picture1,Ctrl+V)。
调整控件布局。
Picture1 调整大小,设置 BorderStyle = 0 - None
Option Explicit

Private Sub Form_Load()
Picture1.Move 0, 0
With VScroll1
.Min = 0
.SmallChange = 120
End With
End Sub

Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then Exit Sub

On Error Resume Next
With VScroll1
.Move ScaleWidth - .Width, 0, .Width, ScaleHeight

If ScaleHeight >= Picture1.Height Then
.Max = 0
.Value = 0
Else
.Max = Picture1.Height - ScaleHeight
.SmallChange = 120
.LargeChange = ScaleHeight
End If
End With
On Error GoTo 0
End Sub

Private Sub VScroll1_Change()
Picture1.Top = -VScroll1.Value
End Sub

读书人网 >VB

热点推荐