RichTextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

RichTextBox

Сообщение Sirik » 22.09.2004 (Ср) 15:55

У меня такая проблемма:
сначала у меня RichTextBox пустой, потом я делаю так:
Код: Выделить всё
    RichTextBox1.Text = "1234567890" & vbCrLf
    RichTextBox1.SelStart = 0
    RichTextBox1.SelLength = 2
    RichTextBox1.SelColor = vbRed


При следующем добавлении текста в RichTextBox весь текст почему-то становится красный, но я выделил только часть текста?
Почему так происходит я не знаю?

Каждый раз перекрашивать меня не удавлитворяет, большой объём текста

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 22.09.2004 (Ср) 16:07

Чтобы было понятнее:
Код: Выделить всё
    RichTextBox1.Text = "1234567890"
    RichTextBox1.SelStart = 0
    RichTextBox1.SelLength = "2"
    RichTextBox1.SelColor = vbRed
   
   
    RichTextBox1.Text = RichTextBox1.Text & "tt"


Я выделяю только 2 символа и крашу в красный, потом когда делаю добваление ещё текста, то весь перекрашивается. Что делать?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 22.09.2004 (Ср) 16:16

А ты сначала добавь сразу весь текст, а потом его раскрась - оно и намного быстрей будет.

А в твоем коде ты не добавляешь текст, а заменяешь его....
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 22.09.2004 (Ср) 16:37

Andrey Fedorov писал(а):А ты сначала добавь сразу весь текст, а потом его раскрась - оно и намного быстрей будет.

А в твоем коде ты не добавляешь текст, а заменяешь его....

Как это не добавляю??? Я как раз и заменяю (имеется в виду: RichTextBox1.Text = RichTextBox1.Text & "tt")

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 22.09.2004 (Ср) 16:43

>Как это не добавляю??? Я как раз и заменяю (имеется в виду: RichTextBox1.Text = RichTextBox1.Text & "tt")

Заметь - ты сам сказал что заменяешь!

Присвой текст RichTextBox-у за один раз. И уже потом раскрась его. И будет тебе заодно высокая скорость.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 22.09.2004 (Ср) 16:52

Ладно, оговорился я

У меня весь текст, набодобие чата, состоит из сообщений. Так вот, я сейчас так и у меня некрасиво происходит добавление новой реплики: заменяю весь текст, и крашу. Но если много реплик, происходит скороллинг от первой к посленей реплики. Всё это не красиво выглядет

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.09.2004 (Ср) 17:05

Sirik, попробуй между
Код: Выделить всё
RichTextBox1.SelColor = vbRed

и
Код: Выделить всё
RichTextBox1.Text = RichTextBox1.Text & "tt"

делать
Код: Выделить всё
RichTextBox1.SelLength = 0
RichTextBox1.SelColor = vbBlack
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 22.09.2004 (Ср) 17:08

tyomitch писал(а):
Код: Выделить всё
RichTextBox1.SelLength = 0
RichTextBox1.SelColor = vbBlack


Если у буду переводить курсор в 0, то у меня будет скороллинг рича в начало. А если у меня в ричи 100 строк, ты представляешь что будет?: будет ужасное мерцание

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.09.2004 (Ср) 17:18

Sirik, там не .SelStart, там .SelLength, посмотри внимательнее :-)
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 22.09.2004 (Ср) 17:22

tyomitch писал(а):Sirik, там не .SelStart, там .SelLength, посмотри внимательнее :-)

Сорррррри, что-то заработался, глаза ни черта не видят, пора домой идти. А за совет спасибо, буду пробовать

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 22.09.2004 (Ср) 18:34

поясню проще :=)

.SelStart = Len(RichTextBox1.Text) 'переводим каретку в конец (можешь не писать это в код)
.SelLength = 0 'выделяем символ chr(0) = \0
.SelColor = vbRed 'цвет красно-жопый

Всё ok'ейно работает!
Press any key . . .

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.09.2004 (Ср) 18:37

PATRIOT_kz писал(а): .SelColor = vbRed 'цвет красно-жопый

Ура, наконец-то повод забанить патриота появился!!
:-)
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 23.09.2004 (Чт) 8:06

PATRIOT_kz писал(а):поясню проще :=)

.SelStart = Len(RichTextBox1.Text) 'переводим каретку в конец (можешь не писать это в код)
.SelLength = 0 'выделяем символ chr(0) = \0
.SelColor = vbRed 'цвет красно-жопый

Всё ok'ейно работает!


Народ, ну попробуйте, что-то у меня не фига не работает?!
Код: Выделить всё
    RichTextBox1.Text = "1234567890"
    RichTextBox1.SelStart = 0
    RichTextBox1.SelLength = 2
    RichTextBox1.SelColor = vbRed
   
    RichTextBox1.SelStart = Len(RichTextBox1.Text)
    RichTextBox1.SelLength = 0
    RichTextBox1.SelColor = vbBlack
   
    RichTextBox1.Text = RichTextBox1.Text & "1234567890"


Почему кода вставляю строку RichTextBox1.Text = RichTextBox1.Text & "1234567890", весь текст стаёт красным?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.09.2004 (Чт) 10:05

Блин, да не .Text ты меняй, а .SelText.
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 23.09.2004 (Чт) 10:07

alibek писал(а):Блин, да не .Text ты меняй, а .SelText.

Всё, всё, получилось

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 23.09.2004 (Чт) 11:23

Обращение к "tyomitch".

[censored]
Press any key . . .

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.09.2004 (Чт) 13:29

PATRIOT_kz

Во первых, выбирай выражения, когда пишешь это раз. Во вторых, подучи матчасть прежде чем писать комментарии. В третьих - читай Правила конференции, где ясно сказано, что вся личная переписка идет через личные сообщения.



В итоге ты получаешь три строгих замечания из трех возможных. За любое следующее нарушение будет тебе бан.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: С.Т., Yandex-бот и гости: 4

    TopList