?
Solved

Scrollable Forms

Posted on 1999-01-14
4
Medium Priority
?
271 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 100 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

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

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

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
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…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses
Course of the Month13 days, 2 hours left to enroll

777 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