Solved

Scrollable Forms

Posted on 1999-01-14
4
249 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

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

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

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
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.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

810 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