Показать сообщение отдельно
Старый 02.02.2014, 21:11   #1
Dark Dragon
Оператор ЭВМ
 
Аватар для Dark Dragon
 
Регистрация: 13.10.2012
Адрес: Российская Федерация,г.Челябинск.
Сообщений: 41
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Помогите разобраться с RTB

Пишу приложение в котором необходимо в RichTextBox выводить текст в разном форматировании. На первой строке к примеру красные буквы привязанные к левому краю, а на второй зеленые буквы привязанные к правому краю. И затем так далее. Я написал такой код:
       int Th()
             {
               string say = "bla bla bla";                
                Dialogbox.Text += say + Environment.NewLine;
                int my1stPosition = Dialogbox.Text.Length - say.Length-1;
                Dialogbox.SelectionStart = my1stPosition;
                Dialogbox.SelectionLength = say.Length;
                Dialogbox.SelectionColor = Color.Green;
                Dialogbox.SelectionAlignment = HorizontalAlignment.Right;
            }

        private void button1_Click(object sender, EventArgs e)
        {
            string say = message.Text;
            if (say != "")
            {
                Dialogbox.Text += say + Environment.NewLine;
                int my1stPosition = Dialogbox.Text.Length - say.Length - 1;
                Dialogbox.SelectionStart = my1stPosition;
                Dialogbox.SelectionLength = say.Length;
                Dialogbox.SelectionColor = Color.Red;
                Dialogbox.SelectionAlignment = HorizontalAlignment.Left;
                message.Text = "";
                Th();
            }
Кнопка берет данные с текстбокса и запихивает его в RTB попутно обрабатывая. Затем вызывается функция ответа, которая пишет строчку и обрабатывает уже ее. Вопрос: почему в результате после второго, третьего и т.д. ввода данных предыдущий текст становится красным и привязанным к левому краю?
__________________
P.S.: Если что я этого не говорил
(Offline)
 
Ответить с цитированием