FIX: Cannot Programmatically Select Items in ListView
ID: Q143427
|
The information in this article applies to:
-
Microsoft Visual Basic Standard, Professional, and Enterprise Editions, 32-bit only, for Windows, version 4.0
SYMPTOMS
After setting the Selected property of a ListItem in the ListView control
to True, the SelectedItem property returns the last item that was selected
with a mouse click.
RESOLUTION
The code below can be used as a workaround instead of Selected = True.
Sub SelectAListItem(iItemToSelect%)
Dim Item As ListItem
Set Item = ListView1.ListItems(iItemToSelect%)
Set ListView1.SelectedItem = Item
End Sub
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This bug has been fixed in Visual Basic
5.0.
MORE INFORMATION
Steps to Reproduce
- Start Visual Basic 4.0, or select New Project from the File menu if
it is already running.
- Add Command button and Listview controls to the default Form1.
- Add the following code to Form1:
Private Sub Form_Load()
Dim itmX As ListItem
Dim i As Integer
For i = 1 To 10
Set itmX = ListView1.ListItems.Add(, , CStr(i))
Next i
End Sub
Private Sub Command1_Click()
ListView1.ListItems(5).Selected = True
MsgBox "Index of selected item is " & ListView1.SelectedItem.Index
End Sub
- Press F5 to start the application. Click once on the Command button and
see that the message box displays the index of the selected item as 1,
despite the fact that it was set to 5 by the previous line of code.
- Change the code in the Command1_Click event to the following to fix the
problem:
Private Sub Command1_Click()
Dim item As ListItem
Set item = ListView1.ListItems(5)
Set ListView1.SelectedItem = item
MsgBox "Index of selected item is " & ListView1.SelectedItem.Index
End Sub
Additional query words:
errmsg vb432 listview kbVBp400bug kbVBp500fix kbVBp kbdsd kbDSupport
kbControl
Keywords : kbGrpVB
Version : 4.00
Platform : NT WINDOWS
Issue type : kbbug