TAG:
该程式实际应用时,应是造一个很大的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 = [FS:PAGE]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 (jacky) |