Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
29 / 27 / 4
Регистрация: 16.11.2011
Сообщений: 147

Обработка текста в RichTextBox. Сохранение позиции курсора после форматирования

23.07.2012, 19:41. Показов 5445. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ситуация такая:

на форме есть контрол RichTextBox, в нем редактируется текст. в событии TextChanged вызывается следующее:

C#
1
2
3
4
5
6
7
8
9
10
private void nickTextBox_TextChanged(object sender, EventArgs e)
{
     Draw.SetWordForeColor(nickTextBox, "^1", Color.Red);
     Draw.SetWordForeColor(nickTextBox, "^2", Color.Green);
     Draw.SetWordForeColor(nickTextBox, "^3", Color.Yellow);
     Draw.SetWordForeColor(nickTextBox, "^4", Color.Blue);
     Draw.SetWordForeColor(nickTextBox, "^5", Color.Cyan);
     Draw.SetWordForeColor(nickTextBox, "^6", Color.Pink);
     Draw.SetWordForeColor(nickTextBox, "^9", Color.Gray);
}
вот сама функция Draw.SetWordForeColor:

C#
1
2
3
4
5
6
public static void SetWordForeColor(RichTextBox richTextBox, string word, System.Drawing.Color color)
{
     richTextBox.DeselectAll();
     richTextBox.Find(word, RichTextBoxFinds.None);
     richTextBox.SelectionColor = color;
}
в общем, при редактировании текста в текстбоксе проверяется, есть ли в тексте спец.обозначения, и если они есть то они рисуются другим цветом.

ВОПРОС:
1. как изменить функцию SetWordForeColor так, чтобы после изменения цвета она не меняла позицию курсора. то есть чтоб курсор не перескакивал в начало текста после изменения цвета. получается, что при каждом изменении текста курсор всегда ставится в начало текста

2. функция SetWordForeColor (она есть в моем первом вопросе) меняет цвет шрифта только первых вхождений требуемых символов в тексте. таким образом, в тексте ^1гыг^1хах красным обозначается только первое "^1", второе не меняется. как исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2012, 19:41
Ответы с готовыми решениями:

Методы RichTextBox, смена позиции курсора
Как можно отследить смену позиции курсора в RichTextBox?

Как сбросить все форматирования текста который находится в richTextBox
Мне нужно реализовать пересохранение файла, т.е. открыть RTF и сохранить как TXT. Но для этого нужно, что бы текст стал обычным, т.е. без...

DataGridView сохранение форматирования после обновления
Столкнулся с такой проблемой. Программа работает с базой MySQL. При запуске программы проверяется файл настройки с данными для доступа к...

9
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
27.07.2012, 00:30
AvtoCrack,
Попробуй такой вариант.
Нужные слова будут выделяться нужным цветом по ходу набора текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  public Dictionary<string, Color> color = new Dictionary<string, Color>(); // создаем словарь состоящий из пар:  слово - его цвет
     ICollection<string> specialWords; // здесь будем хранить список слов, взятых из словаря
       
        private void richTextBox1_Enter(object sender, EventArgs e)
        {
          // заполняем словарь
          color.Add("внимание", Color.Red);
          color.Add("^2", Color.Green);
          color.Add("^3", Color.Yellow);
 
          specialWords = color.Keys; // отдельно создаем список из специальных слов
        }
       
       
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            FoundSpecialWords(richTextBox1, specialWords);
        }
 
 
        public void FoundSpecialWords(RichTextBox richTextBox, ICollection<string> specialWords)
        {
            foreach (string specialWord in specialWords)
            {
               int pos = richTextBox.Text.LastIndexOf(specialWord); // определяем наличие  спецслова в тексте (последнего в тексте, не замечая ранее введенных)
 
               if ((pos != -1) && (pos == richTextBox.TextLength - specialWord.Length)) // определяем, является ли спецслово последними введенными знаками в тексте (стоят ли в конце текста?)  
               {
                  Color textColor =richTextBox.ForeColor;// сохраняем текущий цвет текста
                   richTextBox.Select(pos, richTextBox.Text.Length);
                   richTextBox.SelectionColor = color[specialWord];
                   richTextBox.SelectionStart = richTextBox1.Text.Length; // перемещаемся в конец текста
                   richTextBox.SelectionColor = textColor; // возвращаем прежний цвет текста
                
               }              
            }
        }
ЗЫ: для Dictionary нужно using System.Collections.Generic
1
29 / 27 / 4
Регистрация: 16.11.2011
Сообщений: 147
28.07.2012, 00:29  [ТС]
но ведь юзер может фразу СКОПИРОВАТЬ в текстбокс, а не СОБСТВЕННОРУЧНО ПИСАТЬ. в таком случае функция будет красить только последние вхождения нужных слов в тексте.

Добавлено через 22 минуты
ну ладно и на этом спасибо!)

Добавлено через 1 час 54 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static void DrawSpecialWords (RichTextBox richTextBox, ICollection <string> specialWords)
{
        foreach (string specialWord in specialWords)
        {
                int firstPos = richTextBox.Text.IndexOf(specialWord);
                int lastPos = richTextBox.Text.LastIndexOf(specialWord);
 
                if (firstPos != -1)
                {
                        Color textColor = richTextBox.ForeColor;
 
                        richTextBox.Select(firstPos, specialWord.Length);
                        richTextBox.SelectionColor = ColorDictionary[specialWord];
                        richTextBox.SelectionStart = firstPos + specialWord.Length;
                        richTextBox.SelectionColor = textColor;
                }
 
                if (lastPos != 1 && lastPos == richTextBox.TextLength - specialWord.Length)
                {
                        Color textColor = richTextBox.ForeColor;
 
                        richTextBox.Select(lastPos, richTextBox.Text.Length);
                        richTextBox.SelectionColor = ColorDictionary[specialWord];
                        richTextBox.SelectionStart = richTextBox.Text.Length;
                        richTextBox.SelectionColor = textColor;
                 }
        }
}
изменил так функцию. НО! При копировании фразы все спец.слова подсвечиваются но... подсвечиваются не только спец.слова (мягко сказано). в общем разукрашивается половина текста >.<

Добавлено через 3 часа 15 минут
да и кстати, если редактировать не конец текста, а начало или середину, то курсор всегда оказывается в конце текста. в общем тоже самое что и мой вариант с НАЧАЛОМ текста XD
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
30.07.2012, 00:59
AvtoCrack,
Посмотри такой вариант
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
        public Dictionary<string, Color> color = new Dictionary<string, Color>(); // создаем словарь состоящий из пар:  слово - его цвет
        ICollection<string> specialWords; // здесь будем хранить список слов, взятых из словаря
 
        private void richTextBox1_Enter(object sender, EventArgs e)
        {
            // заполняем словарь
            color.Add("внимание", Color.Red);
            color.Add("один", Color.Green);
            color.Add("№", Color.Brown); 
            specialWords = color.Keys; // отдельно создаем список из специальных слов
 
            richTextBox1.Tag = 0;
 
        }
 
 
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            SetAllSpecialWordForeColor(richTextBox1, specialWords);
    
        }
 
 
        public void SetAllSpecialWordForeColor(RichTextBox richTextBox, ICollection<string> specialWords )
        {
            // длина текста до изменения
            int LastlengthText;
            try
            {
                LastlengthText = (int)richTextBox.Tag;
 
            }
            catch { LastlengthText = 0; }
 
            // длина текста после изменения
            int NewlengthText = richTextBox.Text.Length;
            richTextBox.Tag = NewlengthText; // запомним длину измененного текста
            int count = NewlengthText - LastlengthText; // количество введенных символов
 
 
            // сохраняем исходную позицию курсора и основной цвет текста
            int cursorPos = richTextBox.SelectionStart;
            Color textLastColor = richTextBox.ForeColor;
 
 
            // РАСЧЕТ
 
            // случай, когда добавляется или удаляется один символ и курсор стоит не в конце текста
            // так мы можем убирать выделение со спецслов если оно будет изменено, или наоборот, выделить если оно появится в результате слияния слов 
            if (Math.Abs(count) == 1 && (cursorPos < NewlengthText))
            {
 
                richTextBox.SelectAll();
                richTextBox.SelectionColor = textLastColor;
 
 
                    foreach (string specialWord in specialWords)
                    {
                        int pos = 0;
                        while (richTextBox.Text.IndexOf(specialWord, pos) != -1)
                        {
                            pos = richTextBox.Text.IndexOf(specialWord, pos);
                            richTextBox.DeselectAll();
                            richTextBox.Select(pos, specialWord.Length);
                            richTextBox.SelectionColor = color[specialWord];
                            pos++;
                            richTextBox.SelectionStart = cursorPos;
                        }
                    }           
            }
 
 
            // случай, когда добавляется за раз только один символ
            //  поиск спецслов ведем только  от позиции курсора справа налево
            if (count == 1)
            {
                foreach (string specialWord in specialWords)
                {
                    int pos = richTextBox.Text.LastIndexOf(specialWord, cursorPos);
                    if ((pos != -1) && (pos == cursorPos - specialWord.Length)) // определяем, есть ли спецслово  и стоит ли они сразу перед курсором)  
                    {
                        if (richTextBox.Find(specialWord, pos, cursorPos, RichTextBoxFinds.WholeWord) == -1) break;
                        richTextBox.Select(pos, specialWord.Length);
                        richTextBox.SelectionColor = color[specialWord];
                        richTextBox.SelectionStart = cursorPos;
                        break;
                    }
                }
            
            }
 
            // случай, когда добавляется разом более одного символа (вставкой из буфера памяти или программно)
            // поиск будет проведен в введенном диапазоне символов
            if (count >= 2)
            {
 
                foreach (string specialWord in specialWords)
                {
                   // int count=NewlengthText - LastlengthText;// количество вставленных символов
                    int pos = cursorPos - count; //позиция начала поиска
 
                    while (richTextBox.Text.IndexOf(specialWord, pos, count) != -1)
                    {
                        pos = richTextBox.Text.IndexOf(specialWord, pos, count);
                        richTextBox.DeselectAll();
                        richTextBox.Select(pos, specialWord.Length);
                        richTextBox.SelectionColor = color[specialWord];
                        pos += specialWord.Length;
                        count = cursorPos - pos;
 
                    }
                }
            }
 
            richTextBox.DeselectAll();
          //  richTextBox.SelectionStart = cursorPos;
            richTextBox.SelectionColor = textLastColor; // возвращаем прежний цвет текста  
 
        }
Вместо richTextBox1.Tag можно использовать какую нибудь глобальную переменную.

Программа не все умеет учитывать при редактировании текста, но для вашего случая думаю подойдет
Вложения
Тип файла: zip FindSpezWords.zip (49.6 Кб, 15 просмотров)
1
29 / 27 / 4
Регистрация: 16.11.2011
Сообщений: 147
01.08.2012, 17:00  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
public static void DrawAllSpecialWords(RichTextBox rtb, ICollection <string> specialWords)
        {
            #region Объявления переменных
 
            int LastlengthText = new Int32();
 
            try { LastlengthText = (int) rtb.Tag; }
            catch { LastlengthText = 0; }
 
            int NewlengthText = rtb.Text.Length;
            rtb.Tag = NewlengthText;
            int count = (int) rtb.Tag - LastlengthText;
 
            int cursorPos = rtb.SelectionStart;
            Color textLastColor = rtb.ForeColor;
 
            #endregion
 
            #region Раскраска спец. символов в середине текста
 
            if (Math.Abs(count) == 1 && (cursorPos < NewlengthText))
            {
                rtb.SelectAll();
                rtb.SelectionColor = textLastColor;
 
                foreach (string specialWord in specialWords)
                {
                    int pos = 0;
 
                    while (rtb.Text.IndexOf(specialWord, pos) != -1)
                    {
                        pos = rtb.Text.IndexOf(specialWord, pos);
                        rtb.DeselectAll();
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
 
                        pos++;
 
                        rtb.SelectionStart = cursorPos;
                    }
                }
            }
 
            #endregion
 
            #region Раскраска спец. символов по мере набора текста
 
            if (count == 1)
            {
                foreach (string specialWord in specialWords)
                {
                    int pos = rtb.Text.LastIndexOf(specialWord, cursorPos);
 
                    if (pos != -1 && pos == cursorPos - specialWord.Length)
                    {
                        if (rtb.Find(specialWord, pos, cursorPos, RichTextBoxFinds.WholeWord) == -1) break;
 
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
                        rtb.SelectionStart = cursorPos;
 
                        break;
                    }
                }
            }
 
            #endregion
 
            #region Раскраска спец. символов когда текст вставлен из буфера обмена
 
            if (count >= 2)
            {
                foreach (string specialWord in specialWords)
                {
                    //int count = NewlengthText - LastlengthText;
                    int pos = cursorPos - count;
 
                    while (rtb.Text.IndexOf(specialWord, pos, count) != -1) //вот здесь вот выходит исключение. у меня переменная pos равна -24, т.к. cursosPos = 0 а count = 24
                    {
                        pos = rtb.Text.IndexOf(specialWord, pos, count);
                        rtb.DeselectAll();
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
                        pos += specialWord.Length;
                        count = cursorPos - pos;
                    }
                }
            }
 
            #endregion
 
            #region Возврат к нормальному цвету текста
 
            rtb.DeselectAll();
 
            //richTextBox.SelectionStart = cursorPos;
            rtb.SelectionColor = textLastColor;
 
            #endregion
        }
вылетает исключение System.String.IdexOf (я в коде уточнил где)

P.S: у меня при загрузке формы (функция "MainForm_Load") считывается текст из файла и вставляется в richTextBox

т.е. при загрузке формы текстбокс заполняется, и сразу вызывается событие TextChanged, где и вызывается сама функция Draw.DrawAllSpecialWords. таким образом курсор всегда находится на первой позиции (0), т.к. самой формы еще не видно и юзер не может переместить позицию ввода курсора.
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
01.08.2012, 22:30
Цитата Сообщение от AvtoCrack Посмотреть сообщение
P.S: у меня при загрузке формы (функция "MainForm_Load") считывается текст из файла и вставляется в richTextBox
Все верно. При ручной вставке курсор автоматически становится в конец этой вставки.
При загрузке из файла этого не происходит.

Тогда, на случай загрузки из файла, сделай имитацию позиции курсора и отсчета поиска
переделай последний поисковой блок
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            if (count >= 2)
            {
                int pos = cursorPos - count; //позиция начала поиска
                if (pos < 0) { cursorPos = count; pos = 0; }
 
                foreach (string specialWord in specialWords)
                {
 
                    while (richTextBox.Text.IndexOf(specialWord, pos, count) != -1)
                    {
                        pos = richTextBox.Text.IndexOf(specialWord, pos, count);
                        richTextBox.DeselectAll();
                        richTextBox.Select(pos, specialWord.Length);
                        richTextBox.SelectionColor = color[specialWord];
                        pos += specialWord.Length;
                        count = cursorPos - pos;
 
                    }
                }
            }
Только загрузку в RichTextBox возможно придется делать из MainForm_Shown



Ты разобрался, для чего отдельно сделаны блоки if (count == 1) и if (count >= 2)?
Для того, что бы текст не моргал при больших объемах информации .
Там заложены олгаритмы обработки именно нужных участков.

А вот блок if (Math.Abs(count) == 1 && (cursorPos < NewlengthText)) корявенький.
Там могут быть моргания, т.к. каждый раз перелопачивается весь текст.

В принципе, это тоже решаемо.
1
29 / 27 / 4
Регистрация: 16.11.2011
Сообщений: 147
02.08.2012, 12:44  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
public class Draw : IDisposable
    {
        public Dictionary<string, Color> ColorDictionary = new Dictionary <string, Color> ();
        public ICollection<string> SpecialWordsCollection;
 
        public Draw() { }
 
        public void Dispose()
        {
            ColorDictionary.Clear();
            SpecialWordsCollection = null;
        }
 
        public void AddSpecialWords(int type)
        {
            if (type == 1)
            {
                ColorDictionary.Add("^1", Color.Red);
                ColorDictionary.Add("^2", Color.Green);
                ColorDictionary.Add("^3", Color.Gold);
                ColorDictionary.Add("^4", Color.Blue);
                ColorDictionary.Add("^5", Color.Cyan);
                ColorDictionary.Add("^6", Color.Pink);
                ColorDictionary.Add("^9", Color.Gray);
            }
            else
            {
                ColorDictionary.Add("SK", Color.Cyan);
                ColorDictionary.Add("-", Color.Gray);
                ColorDictionary.Add("U", Color.Red);
                ColorDictionary.Add("$", Color.Green);
                ColorDictionary.Add("eR", Color.Red);
            }
 
            SpecialWordsCollection = ColorDictionary.Keys;
        }
 
        public void DrawSpecialWords(RichTextBox rtb)
        {
            if (SpecialWordsCollection == null || ColorDictionary.Count == 0) return;
 
            #region Объявления переменных
 
            int LastlengthText = new Int32();
 
            try { LastlengthText = (int) rtb.Tag; }
            catch { LastlengthText = 0; }
 
            int NewlengthText = rtb.Text.Length;
            rtb.Tag = NewlengthText;
            int count = (int) rtb.Tag - LastlengthText;
 
            int cursorPos = rtb.SelectionStart;
            Color textLastColor = rtb.ForeColor;
 
            #endregion
 
            #region Раскраска спец. символов в середине текста
 
            if (Math.Abs(count) == 1 && cursorPos < NewlengthText)
            {
                rtb.SelectAll();
                rtb.SelectionColor = textLastColor;
 
                foreach (string specialWord in SpecialWordsCollection)
                {
                    int pos = 0;
 
                    while (rtb.Text.IndexOf(specialWord, pos) != -1)
                    {
                        pos = rtb.Text.IndexOf(specialWord, pos);
                        rtb.DeselectAll();
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
 
                        pos++;
 
                        rtb.SelectionStart = cursorPos;
                    }
                }
            }
 
            #endregion
 
            #region Раскраска спец. символов по мере набора текста
 
            if (count == 1)
            {
                foreach (string specialWord in SpecialWordsCollection)
                {
                    int pos = rtb.Text.LastIndexOf(specialWord, cursorPos);
 
                    if (pos != -1 && pos == cursorPos - specialWord.Length)
                    {
                        if (rtb.Find(specialWord, pos, cursorPos, RichTextBoxFinds.WholeWord) == -1) break;
 
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
                        rtb.SelectionStart = cursorPos;
 
                        break;
                    }
                }
            }
 
            #endregion
 
            #region Раскраска спец. символов когда текст вставлен из буфера обмена
 
            if (count >= 2)
            {
                foreach (string specialWord in SpecialWordsCollection)
                {
                    int pos = cursorPos - count;
 
                    if (pos < 0) { cursorPos = count; pos = 0; }
 
                    while (rtb.Text.IndexOf(specialWord, pos, count) != -1)
                    {
                        pos = rtb.Text.IndexOf(specialWord, pos, count);
 
                        rtb.DeselectAll();
                        rtb.Select(pos, specialWord.Length);
                        rtb.SelectionColor = ColorDictionary[specialWord];
 
                        pos += specialWord.Length;
                        count = cursorPos - pos;
                    }
                }
            }
 
            #endregion
 
            #region Возврат к нормальному цвету текста
 
            rtb.DeselectAll();
 
            //richTextBox.SelectionStart = cursorPos;
            rtb.SelectionColor = textLastColor;
 
            #endregion
        }
    }
вот полный код класса Draw. такой вариант не вызывает никаких исключений, но в таком варианте не работает подсветка спец. слов по мере набора текста! но если в уже напечатанный ручками текст вставить какой-нибудь символ в середину текста, то все спец. слова в тексте в миг разукрашиваются. а если просто печатать, то разукрашивается только первое спец. слово, остальные остаются прежними.

Добавлено через 12 минут
ах да, и если в файле в тексте слишком много спец. слов, то они не все разукрашиваются сразу (когда программа вставляет текст в текстбокс). Вот пример:
^9|^0SW^9|^2DaS IsT ^1Me^2! <= в этом нике разукрашиваются только ^1 и ^2 (в самом конце). остальные нет

однако опять же, если в уже вставленный текст вставить какой-нибудь текст в середину, то все спец. слова сразу разукрашиваются. а самостоятельно не хочет почему-то =(
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
03.08.2012, 00:02
1. в блоке if (count == 1) убери
C#
1
if (rtb.Find(specialWord, pos, cursorPos, RichTextBoxFinds.WholeWord) == -1) break;
Это я хотел определить, это самостоятельное слово или оно входит в состав другого. Делать не стал а след остался. Отсюдова первая проблема.


2. if (count >= 2)
добавил
C#
1
count = NewlengthText - LastlengthText;// количество вставленных символов
т.к. не учел, что если спецслово в библиотеке стоит последним, а в тексте первым (например), то к нему поиск может не вернутся.

Вот вариант, с учетом всего этого
Вложения
Тип файла: rar DrawSpecialWords.rar (45.8 Кб, 33 просмотров)
1
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
03.08.2012, 10:20
Есть идея, как организовать другой алгоритм. Позже только. Сейчас не до этого.
0
29 / 27 / 4
Регистрация: 16.11.2011
Сообщений: 147
03.08.2012, 22:13  [ТС]
о а теперь все работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.08.2012, 22:13
Помогаю со студенческими работами здесь

Сохранение текста из RichTextBox
Здравствуйте, я пишу прогу для работы с документом. Этот документ я могу открыть в окне richtextbox и теперь мне нужно содержимое данного...

Блокирование изменение текста в RichTextBox без возможности установки курсора в поле
Здравствуйте, делаю Мессенджер. Вся история сообщений выводится в RichTextBox, проблема, не знаю как сделать, чтобы фон(белый) и цвет...

Сохранение текста из richTextBox в Word
Доброе время суток.. Подскажите как можно реализовать сохранение текста из richTextBox в Word(c помощью saveFileDialog)? И затем, как можно...

обработка текста в richtextbox
Привет! надеюсь разделом не ошибся :) Ребята написал прожку для работы, но она очень медленно работает, может подскажите как ее...

Сохранение текста из RichTextBox с форматированием и с указанной кодировкой
Делаю текстовый редактор. Необходимо сохранять текст в файл с заданными в редакторе цветом,кодировкой и шрифтом. Использую RichTextBox....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru