Tabulation zone de texte [Résolu]

sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 11:29 - Dernière réponse : sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention
- 21 avril 2006 à 15:01
bonjour, une nouvelle question pour la zone de texte: comment simuler une tabulation:

private sub message_keydown(keycode as integer,shift as integer)
dim placecurseur , i as long
if keycode = 9 then
me.message.setfocus
placecurseur=len(me.message.text) = 6
for i =0 to 5
sendkeys (chr(32))
doevents
next
me.message.selstart = placecurseur
exit sub
end if


le probleme est que le curseur se retrouve au debut (selstart = 0)

merci de votre aide
Afficher la suite 

15 réponses

jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 21 avril 2006 à 14:56
+3
Utile
Re,

Si tu veux faire une "Vraie Simulation" remets le KeyCode à 0 a la fin de la procédure comme ca tu ne passeras pas au controle suivant meme si ils ont la propriété TabStop = True.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Cette réponse vous a-t-elle aidé ?  
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 21 avril 2006 à 11:40
0
Utile
Salut,

me.message.setfocus : (si l'événement KeyDown se déclanche, c'est que la zone de texte a déjà le focus et à moins que tu es du texte dans l'événement GotFocus, cette ligne ne sert à rien.
placecurseur=len(me.message.text) = 6 te donne une valeur de type Boolean (est ce vraiment ce que tu cherche à faire?)

Si tu veux que le curseur se retrouve a la fin pourquoi ne pas faire simplement
Me.Message.SelStart = Len(Me.Message.Text)

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 21 avril 2006 à 11:41
0
Utile
Salut,

Trop compliqué ce que tu fais.

Remplaces plutôt ton code par ceci pour insérer des tabulations (qui sont en fait des séries de 6 espaces pour toi) :



Dim placecurseur As Long, i As Long

indice = Me.message.SelStart

If KeyCode = 9 Then

Me.message.Text = Left$(Me.message.Text, indice) & Space$(6) & Mid$(Me.message.Text, indice)

Me.message.SelStart = indice + 6

End If


Manu
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 21 avril 2006 à 11:41
0
Utile
P'tite note :

Mon code fonctionne, que tu places la tabulation au début, au milieu ou à la fin de ton texte.

Manu
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 21 avril 2006 à 11:54
0
Utile
Salut,

A ok c est ca qu il voulait faire.

J ajouterai alors Me.Message.Text Left$(Me.Message.Text, Indice) & Space$(6) & Mid$(Me.Message.Text, Indice + 1 ) 'Car si indice 0 ca pete
Me.Message.SelStart = Indice + 6

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 21 avril 2006 à 11:57
0
Utile
Ouep, si tu veux insérer des
tabulations dans une textbox, ben ... en appuyant sur tab, tu perds le
focus. Du coup, faut bidouiller un peu.



OK pour le "indice+1", mais uniquement si indice=0, dans les autres cas, pas de +1
J'avais pas testé mon truc ...


Manu
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 11:57
0
Utile
ok merci mais au final, tout le texte est selectionné, ca viens de quoi?
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 13:52
0
Utile
je crois que l'erreur viens du fait que la foncion space$(6) ne me cree pas les 6 espaces
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 21 avril 2006 à 14:00
0
Utile
Ce n'est pas mon code qui sélectionne la totalité du texte en tous cas ...

Dans quoi l'as-tu inclus ?


Manu
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 14:21
0
Utile
j'ai mis le code dansla propriete keyup.
par contre j'ai definit la zone de texte en tant que multiligne.
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 14:26
0
Utile
exuse moi, le code est dans le keydown
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 21 avril 2006 à 14:38
0
Utile
Il n'y a aucune raison qu'il sélectionne tout le texte puisque je n'ai pas défini de SelLength.


Manu
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 14:47
0
Utile
je sais pas ce qui se passe mais j'ai efface et recommence ma procedure et a present, le fait d'appuyer sur tab fait bien executer la tabulation mais ensuite, le controle suivant est selectionne et je n'arrive pas a mettre le focus sur me.message.
il n'y a pas un moyen de bloquer l'action premiere de la touche tab une fois qu'elle est lancée?
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 14:51
0
Utile
j'ai identifie un probleme, si ca peux vous aider, quand j'interdis l'arret tabulation sur les autres controles, le code selectionne tout le texte de me.message.
si je n'interdit pas l'arret tabulation, le fait d'appuyer sur tab selectionne le controle suivant apres avoir cree les espaces
sebtralalaetph 111 Messages postés dimanche 19 février 2006Date d'inscription 2 avril 2010 Dernière intervention - 21 avril 2006 à 15:01
0
Utile
ok c'est parfait ca marche, merci infiniement... je vais pouvoir avancer. bonne journée et merci encore.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.