Jag håller på med ett ChatProgram och vill där att raderna skrivs ut ungefär som i mirc, dvs namnen har olika färg från texten, typ: Jag kan hjälpa dig med formateringen:RichTextBox, TextBox
XenostiX: Hej alla.
där "XenostiX:" skulle vara blått, hur får jag gjort detta i en richtextbox?
jag använder följande när jag lägger till en rad:
Sub UserTalk(strText As String)
Dim strUserName As String
Dim intMsgLen
strUserName = "XenostiX"
txtChat.Text = txtChat.Text & strUserName & ": " & strText & vbCrLf
intMsgLen = (Len(strUserName) + Len(strText) + 5)
txtChat.SelStart = Len(txtChat.Text) - intMsgLen
txtChat.SelLength = Len(strUserName) + 1
txtChat.SelColor = RGB(0, 0, 255)
txtChat.SelStart = 0
End Sub
detta gör visserligen så att namnet blir blått MEN när jag använder funktionen mer än en gång så blir det bara det sista "snacket" som blir blått, detta eftersom textboxen förlorar sin formatering var gång ju, så jag undrar om det finns smidigare sätt att lägga till rader och dessutom behålla färgformatet?
sen vill jag att textboxarna skall vara "längst ner" (som att scrolla längst ner efter ett meddelande) hela tiden, hur gör jag detta? jag fuskar nu med att sätta .selstart till sista tecknet efter det att nån skrivit, men finner detta opraktiskt, finns det kanske nåt api typ "SetTextBoxScroll"
Mvh
AndreSv: RichTextBox, TextBox
När du lägger till text så ska du inte göra
rtbtextbox.text = rtbtextbox.text & strNyText
Det är då all texten förlorar sin formatering, utan gör istället såhär:
rtbtextbox.selstart= len(rtbtextbox.text) 'startpositionen är i slutet av texten
rtbtextbox.seltext=strNyText'lägger till den nya texten
Om jag inte har helt fel så stämmer detta...
/Cyth