2017-02-01 113 views
3

所以我有這個文本框實際上是一個遊戲聊天。當有人輸入一條消息時,它的內容如下所示:用戶名:消息格式化VB6中肌酸文本部分的顏色RichTextBox

我想在這裏做的是以某種方式使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 

,但用戶名只在第一個文本行是紅色:

Image of Chat

如何使它爲每一行工作?另外如果可能的話將字體更改爲粗體將會很棒。謝謝!

回答

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 
+0

這是行不通的。整個聊天室變得混亂,發送的文本根本不顯示,我在聊天箱中看到的所有內容都是4:其中4是紅色和粗體,以及:是常規黑色。 – zeroClarity

+0

它適用於我,它只會顯示4,如果你通過它4 –

+0

請注意我的代碼沒有包含或使用'AddChatMsg 0'中的'0',在你的例子中,因爲它似乎沒有被使用,通過它只有2個字符串。 –