Curseur en sélection de caractère à l'entrée dans un textbox
Narutibo
-
Heliotte Messages postés 1491 Date d'inscription Statut Membre Dernière intervention -
Heliotte Messages postés 1491 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un vieux programme en Access 2003 où l'on m'a demandé d'automatiser le formatage des champs en fonction des données qui y sont inscrites (les textbox ne sont pas "liés"aux champs d'une table mais portent le même nom). J'ai donc procédé ainsi pour chaque textbox :
If f_form.Controls(i).ControlType = acTextBox And VarType(rs(f_form.Controls(i).ControlName)) = vbString Then
f_form.Controls(i).InputMask = String(rs(f_form.Controls(i).ControlName).Size, "C")
End If
f_form étant le formulaire rs le recordset et i le compteur de parcours des champs du formulaire.
Cela fonctionne parfaitement mais un problème est apparu. Alors qu'avant, lorsque j'entrais dans un champ avec la souris, le curseur se plaçait à l'endroit indiqué entre deux caractères, maintenant il sélectionne automatiquement le caractère suivant le curseur ce qui peut être gênant lors de corrections.
Quelqu'un a-t-il une idée de ce qui provoque ça ou un moyen de contourner le problème ?
Merci d'avance.
J'ai un vieux programme en Access 2003 où l'on m'a demandé d'automatiser le formatage des champs en fonction des données qui y sont inscrites (les textbox ne sont pas "liés"aux champs d'une table mais portent le même nom). J'ai donc procédé ainsi pour chaque textbox :
If f_form.Controls(i).ControlType = acTextBox And VarType(rs(f_form.Controls(i).ControlName)) = vbString Then
f_form.Controls(i).InputMask = String(rs(f_form.Controls(i).ControlName).Size, "C")
End If
f_form étant le formulaire rs le recordset et i le compteur de parcours des champs du formulaire.
Cela fonctionne parfaitement mais un problème est apparu. Alors qu'avant, lorsque j'entrais dans un champ avec la souris, le curseur se plaçait à l'endroit indiqué entre deux caractères, maintenant il sélectionne automatiquement le caractère suivant le curseur ce qui peut être gênant lors de corrections.
Quelqu'un a-t-il une idée de ce qui provoque ça ou un moyen de contourner le problème ?
Merci d'avance.
A voir également:
- Curseur en sélection de caractère à l'entrée dans un textbox
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
5 réponses
Bonsoir Narutibo,
À tout hasard, si vous renommer les contrôles avec, par exemple une lettre ajouté à l'avant ou à la fin .. pas de meilleur résultat ?
À tout hasard, si vous renommer les contrôles avec, par exemple une lettre ajouté à l'avant ou à la fin .. pas de meilleur résultat ?
Bonjour Heliotte,
En fait le soucis c'est que si je change le nom du contrôle les données n'y seront pas chargées. Je n'ai peut-être pas été assez clair. En fait il n'y a pas de controlsource sur mes champs mais ils portent le même nom que les champs d'une table. Par exemple, Ma_table.adresse correspond à un champ du formulaire dont le nom est adresse. Il y a une procédure initialisation_formulaire qui contient une boucle for parcourant tous les contrôles du formulaire dans laquelle se trouve Formulaire.nom_champ = rs("nom_champ"). C'est un peu tordu mais je ne peux pas me permettre de modifier toute l'application.
Donc pour résumer, si je ne met pas de masque de saisie, le curseur va bien se positionner entre deux caractères comme voulu, mais avec le masque il sélectionne le caractère suivant (même en le déplaçant avec les touches du clavier) ...
En fait le soucis c'est que si je change le nom du contrôle les données n'y seront pas chargées. Je n'ai peut-être pas été assez clair. En fait il n'y a pas de controlsource sur mes champs mais ils portent le même nom que les champs d'une table. Par exemple, Ma_table.adresse correspond à un champ du formulaire dont le nom est adresse. Il y a une procédure initialisation_formulaire qui contient une boucle for parcourant tous les contrôles du formulaire dans laquelle se trouve Formulaire.nom_champ = rs("nom_champ"). C'est un peu tordu mais je ne peux pas me permettre de modifier toute l'application.
Donc pour résumer, si je ne met pas de masque de saisie, le curseur va bien se positionner entre deux caractères comme voulu, mais avec le masque il sélectionne le caractère suivant (même en le déplaçant avec les touches du clavier) ...
Pouvez-vous me donner un exemple avec un textbox .. par exemple :
Nom TextBox : MonNomEstPremier
Valeur : "UxeVale"
Masque de saie : "LLLLLLLLLL"
Je place le pointeur sur : "x"
Il me place le pointeur sur : ???
Nom TextBox : MonNomEstPremier
Valeur : "UxeVale"
Masque de saie : "LLLLLLLLLL"
Je place le pointeur sur : "x"
Il me place le pointeur sur : ???
Bonjour Heliotte,
Après quelques recherches je viens de comprendre le phénomène ... reste à trouver une solution. Mon masque de saisie est le suivant :
"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
Lorsque j'applique ce masque au champ et que je clique dessus, un lettre est automatiquement sélectionnée (en surbrillance) du côté droit du curseur. En fait à partir de 40 caractères dans le masque de saisie, ce phénomène se reproduit ... Je crois qu'il n'y a rien à faire ... comme beaucoup de choses en Access 2003 -_-
Après quelques recherches je viens de comprendre le phénomène ... reste à trouver une solution. Mon masque de saisie est le suivant :
"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
Lorsque j'applique ce masque au champ et que je clique dessus, un lettre est automatiquement sélectionnée (en surbrillance) du côté droit du curseur. En fait à partir de 40 caractères dans le masque de saisie, ce phénomène se reproduit ... Je crois qu'il n'y a rien à faire ... comme beaucoup de choses en Access 2003 -_-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir Narutibo,
Solution à tester ..
Ouvrir une table en modification,
Se placer sur le champs désiré,
En bas, cliquez dans "Masque de saisie", puis sur les trois points "...",
Boîte de dialogue "Assistant masque de saisie" ..
Cliquez sur "Modifier la liste",
Espace réservé : laisser vide !
Si ce n'est pas possible de le supprimer, alors ..
après avoir cliquez sur "Modifier la liste",
Donner un autre nom à "Description" remplir les autres champs, excepté le champ "Espace réservé !
Solution à tester ..
Ouvrir une table en modification,
Se placer sur le champs désiré,
En bas, cliquez dans "Masque de saisie", puis sur les trois points "...",
Boîte de dialogue "Assistant masque de saisie" ..
Cliquez sur "Modifier la liste",
Espace réservé : laisser vide !
Si ce n'est pas possible de le supprimer, alors ..
après avoir cliquez sur "Modifier la liste",
Donner un autre nom à "Description" remplir les autres champs, excepté le champ "Espace réservé !