Je suis en train de controler la longueur d’un ComboBox avec l’event KeyUp:
If me.SelectionStart > 4 then // Limit max. 4 lettres
me.Value = Left( me.Value, 4 )
Else // Changement du text - Majuscule
me.Text = me.Text.Uppercase
End If
Sous Mac ça marche, mais pas sous Windows. Sous windows ça sélectionne tout le text et, n’on peut qu’ecrire 1 lettre
Me.selectionstart est la position du curseur, pourquoi ne pas utiliser Me.Lenght qui est la longueur du texte ?
Enfin, pas sûr d’avoir compris ton problème.
Sinon, en API2 c’est Me.left(4)
La longueur est contrôlée, mais le cas est quand on arrive à 4 lettres.
Si on continue en écrivant, après la 5e touche, on sélectionne le texte complet, et après la 6e un nouveau texte est introduit.
Le cas est que je ne trouve pas, disons, l’option de désélectionner le texte. Sous Mac, après écrire 4 lettres, on a l’effect de ne pouvoir plus continuer Soit si on limite la longueur aussi comme changer les lettres de minuscule à majuscule
If me.Value.Length > 4 then // Limit max. 4 lettres
me.Value = me.Value.Left( 4)
Else // Changement du text - Majuscule
me.Value = me.Value.Uppercase
End If
me.SelectionStart = me.Value.Length
Effectivement le comportement sous Windows est bizarre…
Finalement, ce que je vais faire c’est limiter le max. sous KeyUp et applier l’event Lost focus pour Win pour les majuscules, et le code complet sous l’event KeyUp pour Mac
Après avoir isolé (dans un nouveau projet) j’ai vu que ça marche. Le comportement bizarre est aussi tôt qu’on utilise la propriété “Allow Auto Complete”
Alors je me demande, si sous cette condition me.SelectionStart doit faire le travaille, et ça marche en Mac…est-il un comportement bizarre du win, ou du Xojo? (testée avec 2020r2.1)