主题:[讨论]RichTextBox中修改指定字符的颜色遇到的特殊问题!
我想修改RichTextBox中指定字符的颜色。在论坛的“zzyong00 阿勇”达人的帮助下,实现了这项功能。
比如:RichTextBox中的内容如下所示:
RichTextBox1=“这句话是古希腊哲学家亚里士多德说的。如果说优秀是一种习惯,那么懒惰也是一种习惯。人出生的时候,除了脾气会因为天性而有所不同,其他的东西基本都是后天形成的,是家庭影响和教育的结果。所以,我们的一言一行都是日积月累养成的习惯。我们有的人形成了很好的习惯,有的人形成了很坏的习惯。所以我们从现在起就要把优秀变成一种习惯,使我们的优秀行为习以为常,变成我们的第二天性。让我们习惯性地去创造性思考,习惯性地去认真做事情,习惯性地对别人友好,习惯性地欣赏大自然。”
我想把文本中所有的“习惯”都设为红色字体和五号字。
Dim pos As Long
Do
pos = InStr(pos + 1, RichTextBox1.Text, "习惯", vbTextCompare)
If pos = 0 Then Exit Do
RichTextBox1.SelStart = pos - 1
RichTextBox1.SelLength = 2
RichTextBox1.SelColor = vbRed
RichTextBox1.SelFontSize = 10
Loop
用上述“zzyong00 阿勇”提供的代码实现了这一功能。
但是我现在的文本框中的内容有数学公式,而一些特殊字符是希腊字母。我现在想修改特定字符的时候,就不能准确定位了,指定的字符没法修改。比如下面的代码:
Private Sub Command1_Click()
Dim pos As Integer
RichTextBox1.Text = "Ts = γ△T(ψ-π) / δθπ(γ + 2)) ^(1/2) =0.5" & vbLf & Space(5) & _
"*****************************" & " 计算结果不满足要求!" _
& vbLf & Space(5) & "*****************************"
Do
pos = InStr(pos + 1, RichTextBox1.Text, "满足", vbTextCompare)
If pos = 0 Then Exit Do
RichTextBox1.SelStart = pos - 1
RichTextBox1.SelLength = 2
RichTextBox1.SelColor = vbRed
RichTextBox1.SelFontSize = 10
Loop
End Sub
大家帮帮忙,看看这个该如何解决,真的很着急,拜托大家给出出注意,万分感激!
比如:RichTextBox中的内容如下所示:
RichTextBox1=“这句话是古希腊哲学家亚里士多德说的。如果说优秀是一种习惯,那么懒惰也是一种习惯。人出生的时候,除了脾气会因为天性而有所不同,其他的东西基本都是后天形成的,是家庭影响和教育的结果。所以,我们的一言一行都是日积月累养成的习惯。我们有的人形成了很好的习惯,有的人形成了很坏的习惯。所以我们从现在起就要把优秀变成一种习惯,使我们的优秀行为习以为常,变成我们的第二天性。让我们习惯性地去创造性思考,习惯性地去认真做事情,习惯性地对别人友好,习惯性地欣赏大自然。”
我想把文本中所有的“习惯”都设为红色字体和五号字。
Dim pos As Long
Do
pos = InStr(pos + 1, RichTextBox1.Text, "习惯", vbTextCompare)
If pos = 0 Then Exit Do
RichTextBox1.SelStart = pos - 1
RichTextBox1.SelLength = 2
RichTextBox1.SelColor = vbRed
RichTextBox1.SelFontSize = 10
Loop
用上述“zzyong00 阿勇”提供的代码实现了这一功能。
但是我现在的文本框中的内容有数学公式,而一些特殊字符是希腊字母。我现在想修改特定字符的时候,就不能准确定位了,指定的字符没法修改。比如下面的代码:
Private Sub Command1_Click()
Dim pos As Integer
RichTextBox1.Text = "Ts = γ△T(ψ-π) / δθπ(γ + 2)) ^(1/2) =0.5" & vbLf & Space(5) & _
"*****************************" & " 计算结果不满足要求!" _
& vbLf & Space(5) & "*****************************"
Do
pos = InStr(pos + 1, RichTextBox1.Text, "满足", vbTextCompare)
If pos = 0 Then Exit Do
RichTextBox1.SelStart = pos - 1
RichTextBox1.SelLength = 2
RichTextBox1.SelColor = vbRed
RichTextBox1.SelFontSize = 10
Loop
End Sub
大家帮帮忙,看看这个该如何解决,真的很着急,拜托大家给出出注意,万分感激!