Microsoft KB Archive/138524

= Incorrect ListIndex when Multiselect Set to 1 or 2 =

Article ID: 138524

Article Last Modified on 11/3/2003

-

APPLIES TO


 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition

-



This article was previously published under Q138524



SYMPTOMS
If the Multiselect property of a list box is set to Simple or Extended (1 or 2), the ListIndex property returns 0 for an empty list box or a filled list box with nothing selected. It should return -1. When the Multiselect property of a list box is set to 0 (None), the ListIndex correctly returns -1 under these same conditions.



WORKAROUND
To detect whether the first item in a list box is selected, with Multiselect set to 1 or 2, test the Selected property as well as the Listindex property. For example, with multiselect set to 1 or 2, the following code will give a message box only if the first item in the list box is selected: If (List1.Selected(0) = True And List1.ListIndex = 0) Then MsgBox "First Item Selected" End If



STATUS
Microsoft has confirmed this to be a bug in Visual Basic Version 3.0 for Windows. This problem was corrected in Visual Basic Version 4.0.



Steps to Reproduce Problem
 Start a new project in Visual Basic. Form1 is created by default. Place a list box on Form1. Highlight the list box and press the F4 key to bring the Properties window to the foreground. Change the MultiSelect property to 1-Simple.  In the Activate event for Form1, place this code: For I = 1 to 10 List1.AddItem I  Next MsgBox List1.ListIndex  Press the F5 key to start the program. The form returns a message box containing the value 0. The value should be -1 because nothing is selected.

Additional query words: 3.00 buglist3.00 fixlist4.00

Keywords: KB138524

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.