You are currently offline, waiting for your internet to reconnect

How To Add a Horizontal Scroll Bar to a Visual Basic ListBox

This article was previously published under Q192184
The normal ListBox that comes with Visual Basic for Windows does not have ahorizontal scroll bar. This can be a problem when the item in a ListBoxextends past the boundaries of the ListBox. To add a horizontal scroll barto the control, you can call the Windows API SendMessage function with theLB_SETHORIZONTALEXTENT constant.
This message sets the width in pixels by which a ListBox can scrollhorizontally. If the width of the ListBox is smaller than this value,a horizontal scroll bar will be added to allow horizontally scrolling itemsin the ListBox.

Step-by-Step Example

  1. Create a new Standard EXE project in Visual Basic. Form1 is created by default.
  2. Add a CommandButton and a ListBox to Form1.
  3. Paste the following code into the general declaration section of Form1:
          Option Explicit      Private Declare Function SendMessageByNum Lib "user32" _        Alias "SendMessageA" (ByVal hwnd As Long, ByVal _        wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long      Const LB_SETHORIZONTALEXTENT = &H194      Private Sub Command1_Click()         Dim s As String         Static x As Long         s = InputBox("Please enter any text", "List scroll", _           "this is a simple scrollbar sample for demonstration purposes")         List1.AddItem s         If x < TextWidth(s & "  ") Then            x = TextWidth(s & "  ")           If ScaleMode = vbTwips Then _               x = x / Screen.TwipsPerPixelX  ' if twips change to pixels           SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, x, 0         End If      End Sub						
  4. Run the project and click on Command1. You will be prompted to enter a text string to be added to the ListBox. Each time you enter a string, the code checks to see if it is longer than the previous longest string and will adjust the scroll bar as necessary.
For information on performing this task in 16-bit versions of Visual Basic,please see the following article in the Microsoft Knowledge Base:
80190 : How To Add a Horizontal Scroll Bar to Visual Basic ListBox
kbDSupport kbDSD kbVBp kbVBp400 kbVBp500 kbVBp600 kbCtrl kbAPI

Article ID: 192184 - Last Review: 07/15/2004 20:38:00 - Revision: 3.2

  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • kbhowto KB192184