Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# .ListIndex = -1 causing erratic results

Posted on 2004-10-20
Medium Priority
336 Views
On some of my combo boxes (multiselect = extended), with certain items or selection of items selected, [controlname].ListIndex = -1 deselects all the items in the combobox but they stay highlighted.

In other words:  sometimes after using [controlname].ListIndex = -1,  PatientList.ListCount = 0 but the item(s) in the list remains highlighted.

Any suggestions?  Thanks!
0
Question by:thenelson
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 4
• 2
• 2
• +3

LVL 26

Expert Comment

ID: 12362155
You need to do this to clear

For i = 1 To List1.ListCount
List1.Selected(i - 1) = False
Next
0

LVL 26

Assisted Solution

EDDYKT earned 1000 total points
ID: 12362162
By the way are you talking combo box or list box?
0

LVL 48

Expert Comment

ID: 12362678
change there style = 2
0

LVL 39

Author Comment

ID: 12363987
'For i = 0 To PatientList.ListCount - 1
'    PatientList.Selected(i) = False
'Next i

would be faster than:

For i = 1 To List1.ListCount
List1.Selected(i - 1) = False
Next

(doesn't require the (i-1) calculation with each iteration.)

I'm going for the more elegant, faster solution of .listindex=-1.

It's a combo box.

I need the additional function of style=3.

I meant to put this question in the Access channel -- oh well.
0

LVL 13

Accepted Solution

Michael_D earned 1000 total points
ID: 12364497
From MSDN:

"For a control in which users can make multiple selections, this property's behavior depends on the number of items selected.If only one item is selected, ListIndex returns the index of that item. In a multiple selection, ListIndex returns the index of the item contained within the focus rectangle, whether or not that item is actually selected."

Therefore setting ListIndex = -1 will not clear .Selected property for items but only will remove the current item from the Box
Even that only in case of simple combo.

Regards,

Michael
0

LVL 39

Author Comment

ID: 12364862
Thanks Michael.
Good info!
0

LVL 39

Author Comment

ID: 12364877
I made a mistake -- it is a list box.

in another thread, someone suggested using [controlname]=null.  That creates the same condition as .listindex=-1.  Is that also not reliable?
0

LVL 28

Expert Comment

ID: 12366698
SendMessage list1.hwnd,LB_SETSEL,False,ByVal -1
0

LVL 8

Expert Comment

ID: 12397468
.listindex = -1 works well for me.
0

LVL 13

Expert Comment

ID: 12432681
thenelson tried to find "the more elegant, faster solution of .listindex=-1."
But it isn't perfect world therefor I think EDDYKT gave the right solution
and I have explained why thenelson's method will not work.

So I suggest :
>>> Split
EDDYKT - 250
Michael_D - 250

Best regards,

Michael

0

LVL 39

Author Comment

ID: 12435579
A split sounds good to me.

Nelson
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no oâ€¦
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applicâ€¦
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process fromâ€¦
###### Suggested Courses
Course of the Month8 days, 18 hours left to enroll