Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Как менять цвет текста в RichTextBox?


Автор: Riccon 8.7.2006, 15:41
Проблемпа такая. В RichTextBox динамически поступают данные из xml-файла.
Нужно установить отдельный цвет для заголовка и отдельный для описаия. Как этого можно добиться?  

Автор: Tror 10.7.2006, 10:19
может я что-то не так понял, но по моему

Код

richTextBox1.SelectionColor = Color.Red;
 

Автор: Riccon 10.7.2006, 22:03
Кароче, вот так получилось smile Пасиба.
Код

RTB.SelectedText += myText;
RTB.Select(richTextBox1.Text.Length - myText.Length, myText.Length);
RTB.SelectionColor = Color.Red; 
 

Автор: Killerman 14.2.2008, 21:44
А как отменить селекшн? мне нада чтобы было так:
Name1 - красный цвет, information1 - черный, потом Name2 - красный, information2 - черный и т.д.

Данные в ричтекстбокс подаются последовательно:
Name1 information1 Name2 information2...............

Данные добавляются кнопкой и вызывают срабатывание функции
Я делал так:

Код

void function()
{
    string name = "";

name = GetName(Name_textBox.Text)+": \n"; // В неймтекстбокс вводятся имена Name1,Name2........


         richTextBox1.Text += name;
         richTextBox1.Select((richTextBox1.Text.Length - name.Length), richTextBox1.Text.Length);
         richTextBox1.SelectionColor = Color.Red;
       
       
     /// а здесь я так понял возникает проблема:
  
         richTextBox1.Text +=informationTextBox.Text; 
}



В результате Имя становиться красным, но и весь последующий текст тоже красный.
Я так понял при добавлении строки из informationTextBox цвет не изменяется? или этот текст тоже выбирается и становиться красным при следующем обращении.

Как решить эту проблему? и как отменить селекшн  текста, который выбран?  smile 

Автор: Killerman 15.2.2008, 23:21
что, никто не знает?  smile 

Автор: Crimp 16.2.2008, 00:32
Так как стандартный контролл, то реализованно там всё просто, и при вставке нового текста ты получаеш новый string. Цвета не запоминаются. (Состаяния не сохраняются). Сам контроллер ведёт себя не предсказуемо(если можно так выразица), работает не так как ты ожидаеш smile
Вот посмотри и запусти, должен понять smile
Код

public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        Color[] colors = new Color[] {Color.Red, Color.DarkGray, Color.Yellow };
        private void Form1_Load(object sender, EventArgs e) {
            for (int x = 0; x < 5; x++) {
                AddColoredText("Name" + x.ToString(), colors[0]);
                AddColoredText(" XXXX " + x.ToString(), colors[2]);
                AddColoredText(" informations" + x.ToString() + "\n", colors[1]);
            }

        }

        private void AddColoredText(string text, Color color) {
            this.richTextBox1.Select(0, 0);
            int startPosition = this.richTextBox1.Text.Length;
            this.richTextBox1.Text += text;
            this.richTextBox1.Select(startPosition, text.Length);
            this.richTextBox1.SelectionColor = color;
            this.richTextBox1.Select(0, 0);

        }

    }

Автор: error 16.2.2008, 11:55
Цитата(Killerman @ 14.2.2008,  21:44)
Как решить эту проблему? и как отменить селекшн  текста, который выбран?  smile

Код

RichTextBox.SelectionLength=0;

Автор: Crimp 17.2.2008, 01:27
Повторюсь, сброс Selrction не решит поставленной проблемы, так как сам RichTextBox в данном случае не подходит. (Без большого секса)

Автор: Ganiomb 19.10.2022, 11:06
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)