VB - Formulário Deslizante


Para criar um formulário com permita a rolagem vertical é só seguir a receita:

1- Inicie um novo projeto no VB e no formulário padrão insira algums controles como Caixas de textos e Labels e um botão de comando e o mais importante um controle VScrollBar. Veja a figura abaixo:

agora insira o código abaixo no formulário:

Option Explicit
Dim PosAnterior As Integer

Private Sub cmdQuit_Click()
    Unload Me
End Sub

Private Sub Form_Load()
   Dim iAlturaFormulario As Integer
   Dim iExibeAltura As Integer

   iAlturaFormulario = 3765
   iExibeAltura = 1800

   Me.Height = iExibeAltura

   With VScroll1
      .Height = Me.ScaleHeight
      .Min = 0
       .Max = iAlturaFormulario - iExibeAltura
       .SmallChange = Screen.TwipsPerPixelY * 10
      .LargeChange = .SmallChange
   End With
End Sub

Private Sub pRolaFormulario()
  Dim ctl As Control

  For Each ctl In Me.Controls
        If Not (TypeOf ctl Is VScrollBar) And Not (TypeOf ctl Is CommandButton) Then
             ctl.Top = ctl.Top + PosAnterior - VScroll1.Value
       End If
Next

PosAnterior = VScroll1.Value
End Sub

Private Sub VScroll1_Change()
    Call pRolaFormulario
End Sub

Private Sub VScroll1_Scroll()
     Call pRolaFormulario
End Sub

A seguir rode o projeto e obtenha:

Nota : para obter o mesmo efeito no VB.NET basta definir a propriedade AutoScroll do formulário como true.

Tchau...


José Carlos Macoratti