cs_zerozen
Messages postés6Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention12 octobre 2007
-
21 août 2007 à 08:17
cs_zerozen
Messages postés6Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention12 octobre 2007
-
22 août 2007 à 14:06
Bonjour à tous,
Dans un programme, je mémorise des textes dans une listbox. Avec les touches flêchées,
je me promène dans cette liste et le texte sélectionné est affiché dans un textbox.
Si j'utilise la touche 40 (flêche basse), le curseur se positionne bien à la fin du texte. Par contre avec la touche 38 (flêche haute),
le curseur se place sur l'avant dernier caractère du texte !
Voici le code tout simple qui affiche le texte (Pin_Name$) dans le contrôle Text3(1).
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 22 août 2007 à 10:36
en gros, Windows te dit :
l'utilisateur a pressé la touche fleche haut.
tu donne le focus Text3(1).SetFocus
quand windows traite ta touche, tu es donc dans le textbox, c'est normal...
tu peux tenter de remettre KeyCode à 0 avant l'appel à DISPLAY_Afficher_les_Listes
cs_zerozen
Messages postés6Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention12 octobre 2007 21 août 2007 à 09:07
Salut Renfield et merci.
Voici le code :
<hr />
Private Sub Text3_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
'
Compteur = Numéro_du_Contact_Sélectionné
'
Select Case Index
'
' [ Flêche basse ] : Retour arrière
Case 38
'
Select Case DISPLAY_Mode
Case 0
'
' Décrémenter le compteur
If Compteur > 1 Then
Compteur = Compteur - 1
End If
'
Case 1
'
' Décrémenter le compteur
If Compteur > 1 Then
Compteur = Compteur - 1
End If
'
' Sélection de l'index de la liste en fonction du mode d'affichage
If DISPLAY_Mode = 1 Then
If Compteur < (CAE_Pin_Number / 2) + 1 Then
LIST_Index = 0
Else
LIST_Index = 1
End If
End If
'
Call DISPLAY_Afficher_les_Listes
'
End Select
'
End Select
'
Case Else
'
End Select
'
End Sub
et :
Sub DISPLAY_Afficher_les_Listes()
'
Call Afficher_les_Listes_des_Contacts
Call Afficher_la_Barre_de_Sélection
'
Text3(0).Text = LTrim(Str$(Compteur))
Text3(1).Text = Pin_Name$(Compteur)
Text3(1).SelStart = Len(Pin_Name$(Compteur))
Text3(1).SetFocus
'
End Sub
<hr />
Quand j'appuie sur la touche "flêche basse", le curseur se positionne bien à la fin du texte :
Par contre, si je suis sur le texte index 2 (ADC4 par exemple) et que j'appuie sur la touche flêche haute, mon code affiche bien le texte ADC3/CMP1 mais le curseur se place à la
longueur de la chaîne -1 caractère.