在 VB6 RichTextBox 中创建文本部分的格式颜色
Posted
技术标签:
【中文标题】在 VB6 RichTextBox 中创建文本部分的格式颜色【英文标题】:Formatting color for creatin text part in VB6 RichTextBox 【发布时间】:2017-02-01 01:01:44 【问题描述】:所以我有这个实际上是游戏聊天的文本框。当有人键入消息时,它会显示如下:用户名:消息
我想在这里做的是以某种方式使 UserName 文本始终以不同的颜色显示,因此它与实际消息有点分开。
这是我目前使用的代码:
AddChatMsg 0, userName & ": " & theMsg 'send it to the chatbox
Dim curColor As Long 'current text color
Dim userNameLength As Integer 'username length
userNameLength = Len(UserName) 'store username in integer var
With MyForm.ChatText
curColor = .SelColor 'set curColor
.SelLength = userNameLength 'set Length
.SelColor = vbRed 'change color
.SelText = UserName 'not sure wha this do
.SelColor = curColor 'update current color var
End With
这实际上效果很好,但是用户名仅在第一行是红色的:
如何使它适用于每一行?此外,如果可能的话,将字体更改为粗体将会很棒。谢谢!
【问题讨论】:
【参考方案1】:将用户名和消息分开,然后设置颜色并单独编写它们,例如调用为:
AddChatMsg "DonaldTrump", "I like to grab em"
使用:
Sub AddChatMsg(UserName As String, theMsg As String)
Dim curColor As Long 'current text color
With MyForm.ChatText
curColor = .SelColor
.SelStart = Len(.Text) 'ensure we are at the end
.SelColor = vbRed
.SelBold = True 'write in bold
.SelText = UserName
.SelBold = False
.SelColor = curColor
.SelText = ": " & theMsg & vbCrLf
End With
End Sub
【讨论】:
那行不通。整个聊天框变得一团糟,发送的文本根本不显示,我在聊天框中看到的只是 4: 其中 4 是红色和粗体,而 : 是常规的黑色。 它对我来说很好用,如果你通过它只会显示 4 4 请注意,我的代码在您的示例中不包含或使用AddChatMsg 0,
中的 0
,因为它似乎没有被使用,只传递 2 个字符串。
也许我们有误会什么的。这是聊天框正常工作方式的简短视频:i.gyazo.com/2152d00700553c492561d9b6082efe50.mp4 我只希望用户名(在本例中为“测试”)为红色和粗体,其余部分应保持原样。这就是当我像这样使用你的代码:不能把代码放在这里,因为我剩下的字符用完了,所以这是图片:i.gyazo.com/552578a98bb777d7e51add260a71ec1f.png 使用你的代码时会发生这种情况:i.gyazo.com/2b9981b6fab4d454e50a8ba21806452f.mp4 谢谢。
我的意思是这样使用它:1drv.ms/u/s!Ao96GSLZTCw-sy0wmIMxxXR00l_T以上是关于在 VB6 RichTextBox 中创建文本部分的格式颜色的主要内容,如果未能解决你的问题,请参考以下文章