Richtextbox控件设置字体颜色? ------在线等待!!
我得代码:
Private Sub Command1_Click() //选择颜色
'将 Cancel 设置成 True。
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
'设置 Flags 属性。
CommonDialog1.Flags = cdlCCRGBInit
'显示“颜色”对话框。
CommonDialog1.ShowColor
'将文本筐的背景颜色设置成选定的'颜色。
Me.Text1.ForeColor = CommonDialog1.Color
Exit Sub
ErrHandler:
'用户按了“取消”按钮。
Exit Sub
End Sub
Private Sub Command2_Click() //将文本筐内的文本发送到Richtextbox里
strStart1 = Len(Text1.Text)
strStart2 = Len(RichTextBox1.Text)
With RichTextBox1
.Text = .Text & Text1.Text & vbCrLf
.SelStart = strStart2
.SelLength = strStart1
.SelColor = Me.Text1.ForeColor
End With
End Sub
问题是前两次设置颜色成功,到第三次以后前面的文本颜色就变成了默认色了!
问题点数:50、回复次数:7Top
1 楼herotiger823()回复于 2006-01-19 13:21:11 得分 0
自己顶一下!Top
2 楼gongzhaohui(laoge)回复于 2006-01-19 13:39:53 得分 5
richtextbox在处理中文字符串长度时可能存在问题.你可以试试全英文输入时的状况.也许有关系.Top
3 楼herotiger823()回复于 2006-01-19 13:43:51 得分 0
我试过英文输入,也是一样的到第三次就变成默认颜色!Top
4 楼MSTOP(陈建华)回复于 2006-01-19 14:34:16 得分 10
Private Sub Command1_Click()
'将 Cancel 设置成 True。
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
'设置 Flags 属性。
CommonDialog1.Flags = cdlCCRGBInit
'显示“颜色”对话框。
CommonDialog1.ShowColor
'将文本筐的背景颜色设置成选定的'颜色。
Me.Text1.ForeColor = CommonDialog1.Color
Exit Sub
ErrHandler:
'用户按了“取消”按钮。
Exit Sub
End Sub
Private Sub Command2_Click()
strStart1 = Len(Text1.Text)
strStart2 = Len(RichTextBox1.Text)
With RichTextBox1
.Text = .Text & Text1.Text & vbCrLf
.SelStart = strStart2
.SelLength = Len(.Text) - strStart2 '//********
.SelColor = Me.Text1.ForeColor
End With
End Sub
Top
5 楼rainstormmaster(暴风雨 v2.0)回复于 2006-01-19 14:44:26 得分 35
Option Explicit
Private Sub Command1_Click() '//选择颜色
'将 Cancel 设置成 True。
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
'设置 Flags 属性。
CommonDialog1.Flags = cdlCCRGBInit
'显示“颜色”对话框。
CommonDialog1.ShowColor
'将文本筐的背景颜色设置成选定的'颜色。
Me.Text1.ForeColor = CommonDialog1.Color
Exit Sub
ErrHandler:
'用户按了“取消”按钮。
Exit Sub
End Sub
Private Sub Command2_Click() ' //将文本筐内的文本发送到Richtextbox里
Dim strStart1 As Long
Dim strStart2 As Long
strStart1 = Len(Text1.Text)
strStart2 = Len(RichTextBox1.Text)
With RichTextBox1
.SelStart = strStart2
.SelColor = Text1.ForeColor
.SelText = Text1.Text + vbCrLf
.SelLength = strStart1
End With
End Sub
'
Top
6 楼herotiger823()回复于 2006-01-19 14:48:35 得分 0
TO:MSTOP(陈建华)
我试过你的方法,情况没有改变,依然是选择三次颜色后,先前的文本颜色设置变成默认的了!Top
7 楼herotiger823()回复于 2006-01-19 14:57:02 得分 0
谢谢大家,按照rainstormmaster(暴风雨 v2.0)的方法已经把问题解决了!Top




