А дело вот в чём: берём RichTextBox, программно (через его .Text т.е. text=text & str) добавляем ему строчку, выделяем её, ставим всякие проперти, которые на Sel начинаются, допустим цвет (.SelColor) - красота! Второй раз - тоже всё получается - две строчки разными цветами, всё чики-пуки... Блин! А почему он после третьего (и т.д.) раза все ранее написаные строчки красит в цвет первой строки?!
Вот пример кода, коли не верите:
- Код: Выделить всё
Private Sub Command1_Click()
RichTextBox1.BackColor = vbBlack
addTextToRTB "Line 1", vbRed
MsgBox "Line 1 must be red."
addTextToRTB "Line 2", vbGreen
MsgBox "Line 1 must be red and line 2 must be green."
addTextToRTB "Line 3", vbBlue
MsgBox "Line 1 must be red, line 2 must be green and line 3 must be blue."
End Sub
Private Sub addTextToRTB(addLine As String, txtColor As Long)
RichTextBox1.Text = RichTextBox1.Text & addLine & vbNewLine
RichTextBox1.SelStart = Len(RichTextBox1.Text) - Len(addLine & vbNewLine)
RichTextBox1.SelLength = Len(addLine & vbNewLine) 'Этого можно было-бы и не писать, но...
RichTextBox1.SelColor = txtColor
RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub
Мысли роятся, конечно (куда-ж без них-то )... Возможно это как-то связано с тем, что я полностью обновляю весь текст в боксе, даже скорее всего так оно и есть, но как от этого уйти? Руками писать в какой-нибудь TEMP.RTF на диск, а потом читать в бокс - я еп всё так развлекаться... А у вас какие-нибудь есть идеи?