J'écris un code qui met en évidence les mots en double dans un texte. Le code fonctionne bien lorsque j'ajoute un bouton et l'utilisateur doit appuyer sur le bouton pour vérifier les doublons. Mais je veux faire un code de vérification automatique. J'ai mis mon code dans un sous-programme Handles RichTextBox.TextChanged
. Le problème est que le code sélectionne le mot cible et le met en surbrillance, mais la sélection reste ainsi lorsqu'une nouvelle lettre est tapée, cela permet de voir clairement ce qui a été mis en surbrillance.Mettez en surbrillance un texte spécifique pendant que l'utilisateur tape
aidez-moi s'il vous plaît.
voici mon code:
Private Sub RichTextBox_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox.TextChanged
Try
Call duplicate_check()
Catch ex As Exception
MessageBox.Show("error in RichTextBox.TextChanged")
End Try
End Sub
fonction de contrôle en double:
Private Sub duplicate_check()
Try
' read line by line and get input
Dim LineByLineInput() As String = RichTextBox.Lines
Dim selectionStart, selectionLength As Integer
Dim i, j As Integer
For lineNumber = 0 To UBound(LineByLineInput)
selectionStart = 0
selectionLength = 0
'get index of first char index in the current line
Dim count As Integer = lineNumber
While count <> 0
selectionStart += RichTextBox.Lines(count - 1).Length + 1
count -= 1
End While
' get line as string
Dim line As String = RichTextBox.Lines(lineNumber)
' split line into array of strings
Dim input() As String = line.Split(" ")
'check for duplicates
i = 0
For j = i + 1 To UBound(input)
If input(i) = input(j) Then 'compare each 2 consecutive words if they are the same
selectionStart += input(i).Length + 1
selectionLength = input(i).Length
RichTextBox.SelectionStart = selectionStart
RichTextBox.SelectionLength = selectionLength
RichTextBox.SelectionBackColor = Color.Yellow
Else
selectionStart += input(i).Length + 1
End If
i += 1
Next
Next
Catch ex As Exception
MessageBox.Show("error duplicate_check()")
End Try
End Sub
Pourquoi le double doivent rester sélectionné? Et s'il y avait plusieurs doublons? Mettez le texte en surbrillance et laissez-le continuer à taper sans interférer. –
@AFriend Comment désélectionner le texte après l'avoir mis en surbrillance? –
Jetez un oeil à [ce lien] (http://stackoverflow.com/a/13220947/6144259) –