DOCUMENT:Q206897 11-JAN-2001 [vbwin] TITLE :BUG: Behavior of Lightweight WLVScroll Different from VScrollBar PRODUCT :Microsoft Visual Basic for Windows PROD/VER:WINDOWS:6.0 OPER/SYS: KEYWORDS:kbCtrl kbScrollBar kbVBp kbVBp600bug kbGrpDSVB kbDSupport ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual Basic Professional Edition for Windows, version 6.0 - Microsoft Visual Basic Enterprise Edition for Windows, version 6.0 ------------------------------------------------------------------------------- SYMPTOMS ======== The behavior of the lightweight vertical scrollbar is different from the intrinsic scrollbar. This difference is accentuated when the scrollbar is set to a small maximum value. The lightweight scrollbar always rounds down the position of the slider to the next lower value. The intrinsic scrollbar rounds the slider position either up or down to the nearest position as a function of its proximity. This difference is likely to be noticed, especially if developers are going to be using sliders as an input device to allow users to select from a discrete, small number of options. RESOLUTION ========== The lightweight scrollbar can be made to behave like the intrinsic vertical scrollbar by scaling it. The following procedure outlines the procedure. Step-By-Step Instructions ------------------------- 1. Start a Standard EXE project in Visual Basic. Form1 is added by default. 2. On the Project menu, select Components, check Microsoft Windowless Controls 6.0, and then click OK. 3. Place an intrinsic VScrollBar and a WLVScroll control on Form1. 4. Set the Max value on the WLVScroll control to 100 and set the Max value on the VScrollBar to 1. 5. Set the LargeChange property on the WLVScroll to 100. This makes the WLVScroll look identical to the ScrollBar. 6. Add the following code to the Change event of the WLVScroll: Private Sub WLVScroll1_Change If WLVScroll1.Value > 70 Then WLVScroll1.Value = WLVScroll1.Max Else WLVScroll1.Value = 0 End If End Sub 7. Run the project from the Start menu, or by pressing the F5 key. 8. Drag the slider of ScrollBar downward, almost to the bottom, and release it. The slider jumps to the bottom of the scrollbar. 9. Drag the slider of the WLVScroll to the same position as in the previous step. The slider jumps down to the bottom of the scrollbar. The two controls now have the identical behavior. STATUS ====== Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. MORE INFORMATION ================ Steps to Reproduce Behavior --------------------------- 1. Start a Standard EXE project in Visual Basic. Form1 is added by default. 2. From the Project menu, select Components, check Microsoft Windowless Controls 6.0, and then click OK. 3. Place an intrinsic VScrollBar and a WLVScroll control on Form1. 4. Set the Max values on both the WLVScroll and the VScrollBar to 1. 5. From the Start menu, or with F5, run the project. 6. Drag the slider on the intrinsic VScrollBar down to nearly, but not quite, the bottom. You should see the slider jump the rest of the way down to the bottom. This is the expected behavior. 7. Drag the slider on the WLVScroll control to about the same position as in the previous step. 8. Unlike the intrinsic control, the slider of the WLVScroll jumps back to the top. REFERENCES ========== For additional information, click the article number below to view the article in the Microsoft Knowledge Base: Q184687 INFO: Lightweight controls in Visual Basic 6.0 Additional query words: ====================================================================== Keywords : kbCtrl kbScrollBar kbVBp kbVBp600bug kbGrpDSVB kbDSupport Technology : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB600Search kbVBA600 kbVB600 Version : WINDOWS:6.0 Issue type : kbbug Solution Type : kbpending ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.