为 richtextbox 使用颜色,但在添加其他字符时在 con trỏ mouse 中出错
use color for richtextbox but error in con trỏ mouse when additional character characters
Private Sub Write_code_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write_code.TextChanged
Dim strWord As String
Dim lPos As Long
strWord = "read"
lPos = InStr(1, Write_code.Text, strWord, vbTextCompare)
If lPos > 0 Then
With Write_code
.SelectionStart = lPos - 1
.SelectionLength = Len(strWord)
.SelectionColor = Color.Green
.SelectionStart = Len(Write_code.Text)
.SelectionLength = 0
.SelectionColor = Color.Blue
End With
End If
End Sub
这是我的代码,我有一个问题,当我再次打开文本时,它无法添加字符(只能在文本末尾添加到文本末尾)。有没有其他代码可以帮助我。
您正在使用此“.SelectionStart = Len(Write_code.Text)”在文本末尾设置选择您可以跟踪上次选择并将其设置回去。
Private Sub Write_code_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write_code.TextChanged
Dim strWord As String
Dim lPos As Long
strWord = "read"
lPos = InStr(1, Write_code.Text, strWord, vbTextCompare)
If lPos > 0 Then
Dim originalPosition As Long = Write_code.SelectionStart
With Write_code
.SelectionStart = lPos - 1
.SelectionLength = Len(strWord)
.SelectionColor = Color.Green
.SelectionStart = Len(Write_code.Text) ' Or maybe put it here
.SelectionLength = 0
.SelectionColor = Color.Blue
End With
Write_code.SelectionStart = originalPosition
End If
End Sub
Private Sub Write_code_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write_code.TextChanged
Dim strWord As String
Dim lPos As Long
strWord = "read"
lPos = InStr(1, Write_code.Text, strWord, vbTextCompare)
If lPos > 0 Then
With Write_code
.SelectionStart = lPos - 1
.SelectionLength = Len(strWord)
.SelectionColor = Color.Green
.SelectionStart = Len(Write_code.Text)
.SelectionLength = 0
.SelectionColor = Color.Blue
End With
End If
End Sub
这是我的代码,我有一个问题,当我再次打开文本时,它无法添加字符(只能在文本末尾添加到文本末尾)。有没有其他代码可以帮助我。
您正在使用此“.SelectionStart = Len(Write_code.Text)”在文本末尾设置选择您可以跟踪上次选择并将其设置回去。
Private Sub Write_code_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Write_code.TextChanged
Dim strWord As String
Dim lPos As Long
strWord = "read"
lPos = InStr(1, Write_code.Text, strWord, vbTextCompare)
If lPos > 0 Then
Dim originalPosition As Long = Write_code.SelectionStart
With Write_code
.SelectionStart = lPos - 1
.SelectionLength = Len(strWord)
.SelectionColor = Color.Green
.SelectionStart = Len(Write_code.Text) ' Or maybe put it here
.SelectionLength = 0
.SelectionColor = Color.Blue
End With
Write_code.SelectionStart = originalPosition
End If
End Sub