Solved

Scrollable Forms

Posted on 1999-01-14
4
252 Views
Last Modified: 2010-05-03
Is there an EASY way to make a scrollable form? I am generally new to VB (I know all of the basic coding ie. loops, counting, IF statements etc) but was wondering if there was a FREE, easy-to-use custom control or an easy coding solution :)
Thx in advance..
0
Comment
Question by:generaluser
  • 2
4 Comments
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 50 total points
ID: 1456394
Send me a e-mail at emoreau@s2i.com and I'll send you a very simple example of a scrollable form.
0
 
LVL 7

Expert Comment

by:Inteqam
ID: 1456395
?
0
 
LVL 1

Expert Comment

by:Johnn
ID: 1456396
does it use picture boxes or actual form scroll bars?
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 1456397
No picture control. Only one scroll bar. See code below.

VERSION 5.00
Begin VB.Form frmScroll
   Caption         =   "Scrollable form in VB"
   ClientHeight    =   3045
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   6255
   LinkTopic       =   "Form1"
   ScaleHeight     =   3045
   ScaleWidth      =   6255
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton cmdStay
      Caption         =   "Stay In Place"
      Height          =   495
      Left            =   4440
      TabIndex        =   16
      Top             =   120
      Width           =   1215
   End
   Begin VB.VScrollBar VScroll1
      Height          =   3015
      LargeChange     =   100
      Left            =   5760
      Max             =   3000
      TabIndex        =   15
      Top             =   0
      Width           =   495
   End
   Begin VB.CommandButton Command1
      Caption         =   "Command1"
      Height          =   495
      Left            =   2400
      TabIndex        =   14
      Top             =   5520
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   6
      Left            =   1440
      TabIndex        =   13
      Text            =   "7"
      Top             =   4560
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   5
      Left            =   1440
      TabIndex        =   11
      Text            =   "6"
      Top             =   3840
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   4
      Left            =   1440
      TabIndex        =   9
      Text            =   "5"
      Top             =   3120
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   3
      Left            =   1440
      TabIndex        =   7
      Text            =   "4"
      Top             =   2400
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   2
      Left            =   1440
      TabIndex        =   5
      Text            =   "3"
      Top             =   1680
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   1
      Left            =   1440
      TabIndex        =   3
      Text            =   "2"
      Top             =   960
      Width           =   1215
   End
   Begin VB.TextBox Text1
      Height          =   495
      Index           =   0
      Left            =   1440
      TabIndex        =   1
      Text            =   "1"
      Top             =   240
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label7"
      Height          =   495
      Index           =   6
      Left            =   120
      TabIndex        =   12
      Top             =   4560
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label6"
      Height          =   495
      Index           =   5
      Left            =   120
      TabIndex        =   10
      Top             =   3840
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label5"
      Height          =   495
      Index           =   4
      Left            =   120
      TabIndex        =   8
      Top             =   3120
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label4"
      Height          =   495
      Index           =   3
      Left            =   120
      TabIndex        =   6
      Top             =   2400
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label3"
      Height          =   495
      Index           =   2
      Left            =   120
      TabIndex        =   4
      Top             =   1680
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label2"
      Height          =   495
      Index           =   1
      Left            =   120
      TabIndex        =   2
      Top             =   960
      Width           =   1215
   End
   Begin VB.Label Label1
      Caption         =   "Label1"
      Height          =   495
      Index           =   0
      Left            =   120
      TabIndex        =   0
      Top             =   240
      Width           =   1215
   End
End
Attribute VB_Name = "frmScroll"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

'Explanation:
'   1. Start out by making the form big enough to show
'      all the controls of the form.
'   2. Make a note of the height of the form.
'   3. Resize the form to the display size.
'   4. Make a note of the height of the form.
'   5. Place a vertical scroll bar control on the right side of the form.
'   6. The Max property of the scroll bar should be set to the difference
'      between the height of the full form (2) less the height of the
'      displayed form (4).

Private OldScrollPos As Integer

Private Sub VScroll1_Change()
    ScrollControls
End Sub

Private Sub VScroll1_Scroll()
    ScrollControls
End Sub

Private Sub ScrollControls()
Dim ctl As Control

    For Each ctl In Me.Controls
        'Check for controls that don't move
        If TypeOf ctl Is VScrollBar Or _
           ctl.Name = "cmdStay" _
        Then
            'do nothing
        Else
            ctl.Top = ctl.Top + OldScrollPos - VScroll1.Value
        End If
    Next
    OldScrollPos = VScroll1.Value
End Sub

0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question