Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problems with Listbox
Message
From
10/03/1999 15:36:24
 
 
To
10/03/1999 15:34:04
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Miscellaneous
Thread ID:
00195811
Message ID:
00196062
Views:
28
>>>Greetings,
>>>
>>>I am trying to design a class that contains a text box and a list box. (Similar to the help in windows). I want to be able to type in text in the text box and as the user enters data, I want the list box to select the row that matches.
>>>
>>>The code below works great as long as the index order matches the record number. When I index a table and set the order, the record number always stays with the record. How do I refer to the correct item in the list when the record number and listindex do not match?
>>>
>>>Thanks in advance,
>>>
>>>Scott
>>>
>>>I am using VFP 3.0b.
>>>
>>>
>>>***Text 1 interactivechange event
>>>set exact off
>>>seek alltrim(upper(this.value))
>>>
>>>if found()
>>> nRec = recno()
>>> this.parent.list1.selected(nRec) = .t.
>>>endif
>>>
>>>this.refresh
>>
>>Try to set Listbox.Value and then Setfocus:
>>
>>*** textbox.interactivechange event
>>SELECT mycursor  && this is listbox rowsource
>>SEEK ...
>>IF FOUND()
>> With Thisform.MyListbox
>>   .Value=mycursor.myfield   && it must be character, use ALLTRIM(STR()) if you have integer field
>>   .Setfocus
>> Endwith
>>ENDIF
>>
>
>I have a similar problem with a listbox. The list contains 5 columns; lastname, firstname, ssn, city, state. The rowsourcetype is 6-fields and the rowsource is the list of the corresponding fields from the table. I also have an option button that allows the user to specify the sort order to be by lastname, ssn or city. How do you correctly update the list and position it so that the record that was selected stays selected even after the order is changed?
>
>I have tried saving the record numbere before changing the order then going back to it after requerying and refreshing, but I can't seem to get back to the right row in the list.

You may apply the same approach: keep listbox.value and reset it after each lisbox.requery
Edward Pikman
Independent Consultant
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform