该程式实际应用时,应是造一个很大的From ,再放一个很大的PictureBox於其上,将所要的
Control项都放在PictureBox上安排好後,再将Form缩小,使之比PictureBox还小,并使
一些Control项在Form上没有办法看到。当程式执行时,可以更动FORM的大小,可以看见
ScrollBar的自动出现。事实上,这好比将PictureBox当作是Form 来存放Control项,而
以Form当作是可见的范围,这个范围除非Form大小更动,否则不会变,而令PictureBox
移动,於是可以由Form看到PictureBox不同的部份。
'需一个PictureBox先放於Form上, then Put some Control within Picture1
'另放一个Hscroll, 一个VScroll 於Form上
Option Explicit
Sub Form_Load()
Picture1.BackColor = Me.BackColor
Picture1.BorderStyle = 0 '没有框线
End Sub
Sub Form_Resize()
' Position the scroll bars:
HScroll1.Left = 0
VScroll1.Top = 0
If Picture1.Width > ScaleWidth Then 'picturebox比Form还宽时
HScroll1.Top = ScaleHeight - HScroll1.Height
Else
HScroll1.Top = ScaleHeight '如此Hscroll便不会显示出来了
End If
If Picture1.Height > HScroll1.Top Then
VScroll1.Left = ScaleWidth - VScroll1.Width
If Picture1.Width > VScroll1.Left Then
HScroll1.Top = ScaleHeight - HScroll1.Height
End If
Else
VScroll1.Left = ScaleWidth '如此VScroll便不会出现了
End If
HScroll1.Width = ScaleWidth
If HScroll1.Top > 0 Then VScroll1.Height = HScroll1.Top
' Set the scroll bar ranges
HScroll1.Max = Picture1.Width - VScroll1.Left
VScroll1.Max = Picture1.Height - HScroll1.Top
HScroll1.SmallChange = Abs(HScroll1.Max \ 16) + 1
HScroll1.LargeChange = Abs(HScroll1.Max \ 4) + 1
VScroll1.SmallChange = Abs(VScroll1.Max \ 16) + 1
VScroll1.LargeChange = Abs(VScroll1.Max \ 4) + 1
HScroll1.ZOrder 0
VScroll1.ZOrder 0
End Sub
Sub HScroll1_Change()
Picture1.Left = -HScroll1.Value '更动PictureBox的位置
End Sub
Sub VScroll1_Change()
Picture1.Top = -VScroll1.Value
End Sub
|