Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> richTextBox, изменение цвета у нескольких строк 
V
    Опции темы
W1zArD
Дата 25.9.2008, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



Добрый день, возникла потребность в "раскрашивании" строк у компонента richTextBox.
использую следующий код:

Код

public void AddLog(string log, bool isError)
        {
            richTextBox1.Text += log + "\n";
            int i = richTextBox1.Text.Length - log.Length;
            if (i < 0)
            {
                i = 0;
            }
            richTextBox1.Select(i, log.Length);
            if (isError)
            {
                richTextBox1.SelectionColor = Color.Red;
            }
            else
            {
                richTextBox1.SelectionColor = Color.Black;
            }    
        }


проблема в том что если идет:
+
+
ошибка
ошибка
то предыдущий цвет ошибки (точнее текст ошибки) равен черному...
PM   Вверх
informatik
Дата 26.9.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 3
Всего: 6



А может не парить моск  smile  и просто использовать для логов более удобный контрол, например ListBox., а может даже модифицировать его для удобства...
--------------------
namespace informatik
PM MAIL   Вверх
W1zArD
Дата 27.9.2008, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



неужели никто не подскажет решения?
informatik listBox не вариант
PM   Вверх
Hades
Дата 27.9.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 8.8.2008

Репутация: 1
Всего: 37



Код

private List<int> errors = new List<int>();

public void AddLog(string log, bool isError)
{
    int i = richTextBox1.Text.Length;
    richTextBox1.Text += log + "\n";

    for (int j = 0; j < errors.Count - 1; j += 2)
    {
        richTextBox1.Select(errors[j], errors[j + 1]);
        richTextBox1.SelectionColor = Color.Red;
    }

    richTextBox1.Select(i, log.Length);
    if (isError)
    {
        richTextBox1.SelectionColor = Color.Red;
        errors.Add(i);
        errors.Add(log.Length);
    }
    else
    {
        richTextBox1.SelectionColor = Color.Blue;
    }
}


Это сообщение отредактировал(а) Hades - 27.9.2008, 22:32
PM MAIL   Вверх
Bishop
Дата 27.9.2008, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 3.6.2005
Где: Минск, Беларусь

Репутация: 3
Всего: 16



W1zArD, 
Нужно понимать, что вот этим:
Код
richTextBox1.Text += log + "\n";

вы заменяете всё содержимое, причём рассматривая его как простой текст, поэтому всё форматирование удаляется.

Код
public void AddLog(string log, bool isError)
{
    richTextBox1.AppendText(log + "\n");
    int i = richTextBox1.Text.Length - log.Length - 1;
    richTextBox1.Select(i, log.Length);
    richTextBox1.SelectionColor = isError?Color.Red:Color.Black;
}

PM WWW ICQ   Вверх
W1zArD
Дата 28.9.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



вопрос решен, благодарю за внимание =)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.