Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Combo Problem
Message
De
13/02/2002 17:27:52
 
 
À
13/02/2002 09:41:52
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Titre:
Divers
Thread ID:
00619208
Message ID:
00619765
Vues:
20
Hello Timothy.

I've seen similar behavior in combo boxes (mine not yours). My solution was a bit clugy (sp?), I forced a space after whatever the user typed then trimmed the result. That seemed to work.

Anybody have any better idea or explanation?


Well, this code, in my quickfill combo class works fine for me <s>.

This code in InteractiveChange:
*** handle the key...IOW, find the closest match in the list
IF This.SelStart > 0
	IF ( LASTKEY() > 31 AND LASTKEY() < 128 ) OR ( LASTKEY() = 7 )
	   This.HandleKey()
	ENDIF   
ENDIF
HandleKey method:

LOCAL lcSofar, lnSelStart, lnSelLength, lnRow

WITH This
*** Handle backspace key
IF LASTKEY() = 127
.SelStart = .SelStart - 1
ENDIF
*** Get the value typed in so far
lnSelStart = .SelStart
lcSofar = LEFT( .DisplayValue, lnSelStart )
*** Find a match in column #1 of the combo's internal list
FOR lnRow = 1 TO .ListCount
IF UPPER( .List[ lnRow, 1 ] ) = UPPER( lcSoFar )
.ListIndex = lnRow
EXIT
ENDIF
ENDFOR
*** Highlight the portion of the value after the insertion point
.SelStart = lnSelStart
lnSelLength = LEN( ALLTRIM( .DisplayValue ) ) - lnSelStart
IF lnSelLength > 0
.SelLength = lnSelLength
ENDIF
ENDWITH


Keep in mind that his is a combo class with style=0-DropDown Combo. There is also code in the GotFocus() to ensure that the entire value is selected even when the user clicks in the combo.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform