[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Scrollable Forms

Posted on 1999-01-14
4
Medium Priority
?
279 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
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.
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…
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…
Suggested Courses

649 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