Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
4 oct. 2007 à 23:42
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
10 oct. 2007 à 20:36
Bonjour à tous,
Je voudrais savoir si il était possible de détecter la présence de caractéres spéciaux dans une RichTextBox et dans une ListBox. (par exemple des "é", des "à"...)
Merci d'avance.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 5 oct. 2007 à 08:23
Salut,
Je dirais que c'est parce que la méthode Find ne te retourne pas un Booleen mais la place de la première occurrence d'un caractère cherché.
Et si elle ne trouve pas elle te retourne -1, Hors True = -1 voila pourquoi tu croyais que c'était inversé.
Essaie ceci pour t'en convaincre.
; Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim j As String = "é"
Dim Result As Integer = RichTextBox1.Find(j)
If Result >= 0 Then
MessageBox.Show("Trouvé " & Result.ToString)
Else
MessageBox.Show("Non" & Result.ToString)
End If
End Sub, ----
(Coloration syntaxique automatique par Kenji)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 10 oct. 2007 à 08:42
Salut,
Hélas il semble qu'en .NET la méthode .SPAN est disparue...
J'ai trouver ceci sur le net mais je ne sais pas encore l'adapter:
IL faut récupérer l'interface ITextDocument de ton RichTextBox et appeler la méthode Selection.Expand(tomWord), regarder la documentation MSDN pour l'interface ITExtDocument
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008 5 oct. 2007 à 07:32
Salut
J'ai cherché et j'ai trouvé ceci:
Dim instance As RichTextBox
Dim str AsString
Dim returnValue AsInteger
return
Value = instance.Find(str)
J'ai donc fait un petit truc pour voir comment ça marche avec un bouton et une richtextbox:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim j As String
j = "é"
If RichTextBox1.Find(j) = True Then
MessageBox.Show("Trouvé")
Else
MessageBox.Show("Non")
End If
End Sub
End Class
Et là surprise, quand je tape un é dans la richtextbox, j'obtient le message "non" et quand je tape rien j'obtiens "trouvé" !
Pourquoi c'est inversé ?!
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 oct. 2007 à 15:10
C'est écrit dans l'aide de la fonction .Find, suffit de lire :
"Cette version de la méthode Find recherche la première occurrence d'un caractère d'une liste de caractères spécifiés dans le paramètre characterSet et retourne sa position"
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008 9 oct. 2007 à 21:55
Slt,
Merci beaucoup jrivet.
Ton code marche super bien. Maintenant, je voudrais juste colorer le mot qui contient le "é" en rouge. J'utilise RichTextBox1.SelectionStart pour séléctionner le texte, mais je ne sais pas comment faire pour attraper le début du mot. Et pour la fin, je suppose, qu'il suffit de repérer un espace non ?
Merci d'avance.