Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686

richTextBox в две колонки

11.05.2023, 13:31. Показов 782. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно записать слова в richTextBox в две колонки?
Сделал такой код
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
            richTextBox1.Width = 603;
            foreach (KeyValuePair<object, object> kvp in randomDict)
            {
                // добавляем слово в RichTextBox
                richTextBox1.AppendText(kvp.Key.ToString()+"\t");
            }
            string str = richTextBox1.Text;
            var strSplit = str.Split('\t');
 
            var sb = new StringBuilder(str.Length);
 
            for (int i = 0; i < strSplit.Length; i++)
            {
                if ((i+1) % 2 == 0)
                {
                    sb.Append($"{strSplit[i]}\n");
                    continue;
                }
                sb.Append($"{strSplit[i]}\t");
            }
 
            var ret = sb.ToString();
            
            
            richTextBox1.SelectAll();
            richTextBox1.SelectionTabs = new int[] { 302, 301};
            richTextBox1.AcceptsTab = true;
            richTextBox1.Select(0, 0);
В первую колонку записывается одно слово. Во вторую 19 из всего 20 слов. Как правильно написать код чтобы в каждую колонку записывалось по 10 слов? Прошу помощи.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2023, 13:31
Ответы с готовыми решениями:

Как отобразить на DataGridView значения каких либо переменных в две колонки?
Например, программа подсчитывает что-либо(переменные c и m), вот, как в первую колонку вывести значение c, а во вторую - m? Причем это не...

Tabpage в две колонки
Доброго. Помогите с tabpage. &lt;TabControl&gt; &lt;TabItem&gt; &lt;TabItem.Header&gt; &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt; ...

Растянуть кнопку на две колонки в UnifromGrid
Здравствуйте! Тема наверняка мусолилась не один раз, но найти ответа я пока не смог. Начал изучать WPF, пробую писать калькулятор....

18
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 13:34
Цитата Сообщение от vlad56 Посмотреть сообщение
Как правильно записать слова в richTextBox в две колонки?
А таблицу не хотите использовать?

Добавлено через 1 минуту
В richTextBox как ни равняй всё-равно будет криво.
1
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 13:46  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
А таблицу не хотите использовать?
А в таблице можно изменить цвет и размер шрифта отдельного слова? Я только из этого использую richTextBox.
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 13:55
Цитата Сообщение от vlad56 Посмотреть сообщение
отдельного слова
Отдельного слова в стандартном контроле нельзя. Но если у вас что-то типа словаря, то можно каждое слово разместить в отдельной ячейке, и там уже менять размер и цвет.
1
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 14:02  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Отдельного слова в стандартном контроле нельзя. Но если у вас что-то типа словаря, то можно каждое слово разместить в отдельной ячейке, и там уже менять размер и цвет.
А можно код пожалуйста помещение из словаря каждого слова в отдельную ячейку двух колоночной таблицы dataGridView и изменение размера и цвета шрифта отдельного слова.
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 14:04
Цитата Сообщение от vlad56 Посмотреть сообщение
из словаря
Как вы словарь формируете? Можно код посмотреть, а то неохота по нескольку раз переделывать?
0
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 14:14  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Как вы словарь формируете? Можно код посмотреть, а то неохота по нескольку раз переделывать?
Вот верхняя часть кода
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
private void createNewDictionary()
        {
            // Перетасовываем массив 
            var make = new DictionaryShuffle();
            Dictionary<int, string> dict = result.Select((value, index) => new { index, value })
                                      .ToDictionary(x => x.index, x => x.value);
            List<DictionaryEntry> orderedDict = dict.Select(kvp => new DictionaryEntry(kvp.Value, kvp.Key)).ToList();
            var random = new Random();
            var randomDict = orderedDict // Создаём словарь
                .OrderBy(x => random.Next())
            .ToDictionary(x => x.Key, x => x.Value);
 
            
            richTextBox1.Width = 603;
            foreach (KeyValuePair<object, object> kvp in randomDict)
            {
                // добавляем слово в RichTextBox
                richTextBox1.AppendText(kvp.Key.ToString()+"\t");
            }
            string str = richTextBox1.Text;
            
            //richTextBox1.Clear();
 
            var strSplit = str.Split('\t');
 
            var sb = new StringBuilder(str.Length);
 
            for (int i = 0; i < strSplit.Length; i++)
            {
                if ((i+1) % 2 == 0)
                {
                    sb.Append($"{strSplit[i]}\n");
                    continue;
                }
                sb.Append($"{strSplit[i]}\t");
            }
 
            var ret = sb.ToString();
            
            
            richTextBox1.SelectAll();
            richTextBox1.SelectionTabs = new int[] { 302, 301};
            richTextBox1.AcceptsTab = true;
            richTextBox1.Select(0, 0);
 
            
            richTextBox1.Visible = true;
            listBox1.Visible = false;
            buttonПроверка.Visible = false;
            buttonПодсветка_слов.Visible = true;
        }
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 14:41
Например
C#
1
2
3
4
5
6
7
8
9
10
            DataGridView d = dataGridView1;
 
            foreach (KeyValuePair<object, object> kvp in randomDict)
            {
                d.Rows.Add(kvp.Key, kvp.Value);
                int n = d.RowCount - 1;
                d.Rows[n].Cells[0].Style.ForeColor = d.RowCount % 2 == 0 ? Color.Red : Color.Blue;
                d.Rows[n].Cells[1].Style.ForeColor = d.RowCount % 2 == 0 ? Color.Green : Color.Magenta;
                d.Rows[n].DefaultCellStyle.Font = new Font("Arial", 12, FontStyle.Bold);
            }
Миниатюры
richTextBox в две колонки  
1
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 15:06  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
А таблицу не хотите использовать?
Как в коде создать двух колоночный DataGridView?
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 15:16
Цитата Сообщение от vlad56 Посмотреть сообщение
Как в коде создать двух колоночный DataGridView?
Прям вот в коде? А просто положить на форму и сделать два столбца нельзя?

Добавлено через 5 минут
Но если сильно неймётся, то можно и кодом сделать, например
C#
1
2
3
4
5
6
          DataGridView d = new DataGridView();
            this.Controls.Add(d);
            d.ColumnCount = 2;
            d.ColumnHeadersVisible = false;
            d.RowHeadersVisible = false;
            d.AllowUserToAddRows = false;
1
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 15:16  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Прям вот в коде? А просто положить на форму и сделать два столбца нельзя?
Количество столбцов по коду будет разное. Один столбец на 10 слов. Два столбца на 20 слов. И три столбца на 30 слов.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
11.05.2023, 15:22
Цитата Сообщение от vlad56 Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
// Перетасовываем массив 
            var make = new DictionaryShuffle();
            Dictionary<int, string> dict = result.Select((value, index) => new { index, value })
                                      .ToDictionary(x => x.index, x => x.value);
            List<DictionaryEntry> orderedDict = dict.Select(kvp => new DictionaryEntry(kvp.Value, kvp.Key)).ToList();
            var random = new Random();
            var randomDict = orderedDict // Создаём словарь
                .OrderBy(x => random.Next())
            .ToDictionary(x => x.Key, x => x.Value);
Забористо.
1. Словарь, в котором в качестве ключа используется порядковый номер элемента — это массив.
2. Словарь — неупорядоченная коллекция, потому перемешивать список перед вызовом ToDictionary смысла не имеет.
3. Функционал словаря в коде нигде не используется. Зачем тогда используется словарь?
0
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 15:47  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
2. Словарь — неупорядоченная коллекция, потому перемешивать список перед вызовом ToDictionary смысла не имеет.
Необходимо перемешивать чтобы не совпадал с порядком слов первого словаря.

Цитата Сообщение от kolorotur Посмотреть сообщение
3. Функционал словаря в коде нигде не используется. Зачем тогда используется словарь?
Используется на 15 строке кода в 1 пункте. Заполняется richTextBox1.
Что то у меня исчезает DataGridView. Не получается найти где он по коду исчезает. Прошу помощи
Код после переделки
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
 private void createNewDictionary()
        {
            // Перетасовываем массив 
            var make = new DictionaryShuffle();
            Dictionary<int, string> dict = result.Select((value, index) => new { index, value })
                                      .ToDictionary(x => x.index, x => x.value);
            List<DictionaryEntry> orderedDict = dict.Select(kvp => new DictionaryEntry(kvp.Value, kvp.Key)).ToList();
            var random = new Random();
            var randomDict = orderedDict
                .OrderBy(x => random.Next())
            .ToDictionary(x => x.Key, x => x.Value);
 
 
            DataGridView d = dataGridView1;
            this.Controls.Add(d);
            d.ColumnCount = 2;
            /*d.ColumnHeadersVisible = false;
            d.RowHeadersVisible = false;
            d.AllowUserToAddRows = false;*/
 
            foreach (KeyValuePair<object, object> kvp in randomDict)
            {
                d.Rows.Add(kvp.Key, kvp.Value);
                int n = d.RowCount - 1;
                d.Rows[n].Cells[0].Style.ForeColor = d.RowCount % 2 == 0 ? Color.Red : Color.Blue;
                d.Rows[n].Cells[1].Style.ForeColor = d.RowCount % 2 == 0 ? Color.Green : Color.Magenta;
                d.Rows[n].DefaultCellStyle.Font = new Font("Arial", 12, FontStyle.Bold);
            }
            
            listBox1.Visible = false;
            buttonПроверка.Visible = false;
            buttonПодсветка_слов.Visible = true;
            d.ColumnHeadersVisible = true;
            d.RowHeadersVisible = true;
            d.AllowUserToAddRows = true;
 
        }
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 16:03
Цитата Сообщение от vlad56 Посмотреть сообщение
DataGridView d = dataGridView1;
this.Controls.Add(d);
Ёпрст, если dataGridView1 уже на форме, то его в коллекцию контролов уже не надо добавлять.
2
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 16:22  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
А таблицу не хотите использовать?
Словарь содержит 20 слов. Как записать 10 слов в первую колонку, с 11 по 20 слово во вторую колонку. И как установить ширину колонки через код.
0
fly
 Аватар для I can
4953 / 4641 / 844
Регистрация: 13.04.2015
Сообщений: 9,834
11.05.2023, 16:57
Цитата Сообщение от vlad56 Посмотреть сообщение
Как записать 10 слов в первую колонку,
Легко.
Цитата Сообщение от vlad56 Посмотреть сообщение
Словарь содержит 20 слов
Отлично.

result - это что такое и откуда берётся?

Добавлено через 15 минут
Короче, мне надоело ждать, вы долго отвечаете, да и рабочий день закончен, желаю удачи, пока!
1
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
11.05.2023, 17:01  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
result - это что такое и откуда берётся?
Это первый словарь. Создаётся также случайно из базового словаря в 30 слов. Код создания вынесен в отдельный класс.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
11.05.2023, 23:37
Цитата Сообщение от vlad56 Посмотреть сообщение
Необходимо перемешивать чтобы не совпадал с порядком слов первого словаря.
Словарь — неупорядоченная коллекция, понятие "перемешивание" к нему неприменимо.
Плюс непонятно зачем перемешанную последовательность преобразовывать в словарь, если функционал этого словаря нигде не применяется.

Цитата Сообщение от vlad56 Посмотреть сообщение
Используется на 15 строке кода в 1 пункте.
Там никакой функционал словаря не используется.
Последовательное перечисление можно выполнять и с обычным массивом.
Ну, то есть словарь тут вообще лишний.
0
9 / 7 / 2
Регистрация: 06.03.2012
Сообщений: 686
12.05.2023, 05:43  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
3. Функционал словаря в коде нигде не используется. Зачем тогда используется словарь?
Используется на 15 строке кода в 7 пункте.
Цитата Сообщение от kolorotur Посмотреть сообщение
Ну, то есть словарь тут вообще лишний.
Может и лишний. Я сделал через него чтобы через ключи вытаскивать слова. Наверное можно было и через массив.
Цитата Сообщение от kolorotur Посмотреть сообщение
Плюс непонятно зачем перемешанную последовательность преобразовывать в словарь, если функционал этого словаря нигде не применяется.
Первый словарь я выношу в ListBox. Второй словарь я на данный момент выношу в DataGridView. После щелчка мышью по ячейке получаю значение и сравниваю со словом по порядку из первого словаря. Слова из первого словаря задаются порядком воспоминания по очереди. Первое слово вспомнили. Вспоминаем второе слово. И так далее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2023, 05:43
Помогаю со студенческими работами здесь

WMI - вывод значения и параметра в две колонки listview
Всем привет!) Помогите, как мне в listView вывести этот код (это инфа об ОС), чтобы в одной колонке был параметр (название) в другой...

Вывести имя и расширение файла в две колонки в ListView
Есть listview, в нем папки и файлы которые содержаться в определенной папке. Есть 2 колонны &quot;Имя&quot; и &quot;Расширение&quot;. нужно...

Две колонки css
Всем привет. Делю вывод статей в две колонки. Как убрать лишнее пространство (на рис.) ? Что-бы они дли прямо друг под другом. Спасибо ...

Вёрстка в две колонки
Доброго времени суток, форумчане! Я новичок в вёрстке, подскажите пожалуйста как сделать форму как на картинке Пытаюсь так: ...

Текст в две колонки
Необходимо создать подпись в Outlook, но данные занести в две колонки. Пробовал с Led выровнять. не вышло, текст как бы второй колонки...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru