Bonjour,
J'ai un problème avec un usercontrol. En fait, j'ai un masque de saisie sur le usercontrol "#########" (propriété Text d'un textbox). J'ai fait cette petite routine qui permet de remplacer le caractère appuyé par le masque en fonction de sa position :
L'appel de cette fonction se fait par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 'Insertion du caractère spécifié dans le masque de saisie Private Function InsertChar(strText As String, strChar As String, strMaskChar As String, intPos As Integer) As String Dim intI As Integer Dim strResult As String Dim strMask As String Dim str As String For intI = 1 To Len(strText) If intI = intPos + 1 Then strResult = strResult & Mid$(strChar, 1, 1) If SearchMask(strText, strMaskChar, intI, str) Then intI = intI + 1 lngPos = lngPos + 1 End If Else strResult = strResult & Mid$(strText, intI, 1) End If Next InsertChar = strResult End Function
Sauf que le résultat me donne... : 11#######
Code : Sélectionner tout - Visualiser dans une fenêtre à part txtText.Text = InsertChar(txtText.Text, Chr(KeyAscii), strMask, txtText.SelStart)
D'où provient ce "1" supplémentaire ? Est-ce le txtText.Selstart ?
En fait, je veux que le curseur se positionne sur le caractère suivant la saisie... mais est-ce cela ?
En fait, à priori, le champ ne se réinitialise pas !
Si je fait :
, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part txtText.Text = "23"
Le champ précédent suivit de la nouvelle initialisation.123
J'ai tenté une exécution "pas à pas", mais sans résultat !
Merci par avance.
Partager