Determine whether a control has a scrollbar

Determine whether a control has a scrollbar

There is no built-in VB function that lets you know whether a control – such as a ListBox – is currently displaying a vertical scrollbar. Here’s a pair of functions that check the control’s style bits and return a Boolean that tells if a vertical or horizontal scrollbar is visible:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _    (ByVal hwnd As Long, ByVal nIndex As Long) As LongConst GWL_STYLE = (-16)Const WS_VSCROLL = &H200000Const WS_HSCROLL = &H100000Function HasHorizontalScrollbar(ctrl As Control) As Boolean    HasHorizontalScrollbar = (GetWindowLong(ctrl.hwnd, _        GWL_STYLE) And WS_HSCROLL)End FunctionFunction HasVerticalScrollbar(ctrl As Control) As Boolean    HasVerticalScrollbar = (GetWindowLong(ctrl.hwnd, GWL_STYLE) And WS_VSCROLL)End Function

Using these functions is easy:

If HasVerticalScrollBar(List1) Then    ' List1 is displaying a vertical scrollbarEnd If

See also  How HealthStream Learning Center Supports Healthcare Education and Compliance

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist