Tabulation zone de texte

Résolu
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 - 21 avril 2006 à 11:29
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 - 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

15 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2006 à 14:56
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2006 à 11:40
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
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 avril 2006 à 11:41
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
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 avril 2006 à 11:41
P'tite note :

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

Manu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2006 à 11:54
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
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 avril 2006 à 11:57
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
0
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 1
21 avril 2006 à 11:57
ok merci mais au final, tout le texte est selectionné, ca viens de quoi?
0
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 1
21 avril 2006 à 13:52
je crois que l'erreur viens du fait que la foncion space$(6) ne me cree pas les 6 espaces
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 avril 2006 à 14:00
Ce n'est pas mon code qui sélectionne la totalité du texte en tous cas ...

Dans quoi l'as-tu inclus ?


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


Manu
0
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 1
21 avril 2006 à 14:47
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?
0
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 1
21 avril 2006 à 14:51
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
0
sebtralalaetph Messages postés 111 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 2 avril 2010 1
21 avril 2006 à 15:01
ok c'est parfait ca marche, merci infiniement... je vais pouvoir avancer. bonne journée et merci encore.
0
Rejoignez-nous