cs_benji78
Messages postés41Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention25 novembre 2008
-
9 juil. 2008 à 19:27
cs_benji78
Messages postés41Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention25 novembre 2008
-
10 juil. 2008 à 22:22
Bonjour à tous j'aurais besoin de votre aide pour m'aider à résoudre mon problème:
J'aimerais concevoir un TextBox qui compte les caractère que l'utilisateur à entrer, sans prendre en compte les caractères suivant : schift, back, suppr, up down, right, et left. (et autres touches n'affichant aucun caractères.)
Et que lorsque l'utilisateur a entré 52 caractères, il insère automatiquement après la dernière touche espace préssé "/n ".
Je ne sais pas trop comment procéder pour réaliser cela, pourriez vous m'aidez ?
cs_benji78
Messages postés41Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention25 novembre 2008 9 juil. 2008 à 22:55
En faite je chercher à compter le nombre de caractères entrés dans la texte box, pour pouvoir remplacer la dernière touche espace préssée avant le 52 ème caractère par " /n "
Sinon je ne vois pas trop comment utiliser la solution de Marneus73, que j'ai pu lire en même temps qu'il postait chez Mr Plasserre :).
Merci de votre aide,
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 10 juil. 2008 à 02:52
Ben oui justement. TextBox1.Text.Length n'est ce pas "compter" le nombre de caractères?
Private Sub TextBox1_TextChanged(...) Handles TextBox1.TextChanged
' compter le nombre de caractères entrés dans la texte box :
If TextBox1.Text.Length = 52 Then
' remplacer la dernière touche espace préssée :
Dim ind As Integer = TextBox1.Text.LastIndexOf(" ")
' par " /n " :
Dim txt As String = TextBox1.Text.Substring(0, ind) & " /n"
End If
End Sub
Après je ne sais pas si tu veux récupérer les caractères restant après le " /n"...
Si oui, les voici :
Dim restant As String = TextBox1.Text.Substring(ind + 1)
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 10 juil. 2008 à 21:59
Le copier/coller fonctionne très bien avec ma solution.
"le code fonctionne bien sauf le partie pour récupérer les caractères suivant le " /n ""
C'est à dire? Cette ligne doit donc se trouver après le Dim txt As String = ...
Mais c'est claire que si il n'y a rien après le dernier espace, tu aura une erreur. De même si aucun caractère espace ne se trouve dans tes 1er 52 caractères. A toi de gérer ça.
Si tu as un long texte à découper, il faudra faire ça dans une boucle. Tout dépend le contexte.
cs_benji78
Messages postés41Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention25 novembre 2008 10 juil. 2008 à 22:22
"Mais c'est claire que si il n'y a rien après le dernier espace"
J'ai testé en utlisant ce code :
Public
Class FormCEMessage
Public txt
As
String
Public restant
As
String
Public ind
As
Integer
Private
Sub ButtonCEMessageOk_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ButtonCEMessageOk.Click
MessageBox.Show(txt & restant)
End
Sub
Private
Sub TextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.TextChanged
' compter le nombre de caractères entrés dans la texte box :
If TextBox1.Text.Length = 5
Then
' remplacer la dernière touche espace préssée :
ind = TextBox1.Text.LastIndexOf(
" ")
Lorsque je faisais mon test, j'ai eu l'impression que restant ne m'affichait que le texte situé entre la dernière touche espace préssée, et le 52 ème caractères.
"De même si aucun caractère espace ne se trouve dans tes 1er 52 caractères."
J'ai effectivement remarqué ça, mais puisque c'est un morceau de texte qui est contenu dans le TextBox, et pas une commande, il ne devrait pas y avoir de problème, je pense.
"Le copier/coller fonctionne très bien avec ma solution."
D'accords, merci bien de l'aide :).