Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 06.12.2016
Сообщений: 11
1

Выделение отдельных слов в RichTextBox жирным шрифтом

06.12.2016, 18:24. Показов 1367. Ответов 2
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.

Есть такая задача: в поле RichTextBox нужно вывести перечень терминов с их описанием следующего формата: первая строка - термин, следующая - описание. Затем, при наличии, идет второй термин, третий и т.п., в зависимости от условий. Вот захотел, чтобы термин выделялся жирным. И ничего не получается. Раньше никогда не работал в этом ключе с RichTextBox - максимум, обычный вывод данных построчно, так что совсем растерялся. Читал (кое-что есть и на этом форуме), но либо не догоняю, либо что-то не так. Допустим, распространенный вариант - использование RichTextBox1.SelBold. Но я использую Visual Basic .NET из пакета Visual Studio 2008, и там нет вообще подобного метода. Я так понял, что теперь нужно использовать SelectionFont, но я, к сожалению, не разобрался, как это сделать.

Пожалуйста, если не сложно, набросайте примерный код.

Итак, есть двумерный массив: первый столбец - термины, второй - их расшифровка. Пробегаем массив, сравнивая на вхождение искомого слова в содержимое ячеек первого столбца, и если таковое имеет место быть - выводим в РТБ по описанному выше формату: первая строка - жирно термин, вторая строка - описание термина. И таких терминов может быть несколько.

Сам алгоритм поиска и т.п. уже реализован, весь вопрос лишь в применении жирного шрифта.

Заранее спасибо всем!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2016, 18:24
Ответы с готовыми решениями:

Выделить жирным шрифтом текст в RichTextBox находящийся между тегов <b>
Все наверное знают, что есть такой HTML тег: &lt;b&gt;Текст&lt;/b&gt; Текст находящийся между данным тегом...

MonthCalendar - выделение выбранной даты жирным шрифтом
Добрый вечер форумчане не могу разобраться с элементом MonthCalendar а точней как реализовать...

Выделение отдельного куска текста жирным шрифтом в label
Можно ли как-нибудь выделить жирным шрифтом кусок текста, допустим, в том же label'е? Когда меняю...

Выделение жирным определенных слов
Привет всем.Имеется проект WPF и на форме есть элемент TextBlock. В коде считывается поле из БД и...

2
3843 / 3065 / 736
Регистрация: 02.02.2013
Сообщений: 2,948
Записей в блоге: 2
07.12.2016, 17:46 2
Лучший ответ Сообщение было отмечено uctopuk как решение

Решение

Для RichTextBox можно сделать как то так
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
    Dim ss(,) As String = {{"aaaa", "hhhhhhhhhhhhhhhhhhhh"}, {"bbbbbbb", "hhhhhhhhhhhhhhh"}, {"cccc", "hhhhhhhhhhhhhhh"}, {"ddddddd", "hhhhhhhhhhhhhhhhhhhh"}, {"eeeeeeee", "hhhhhhhhhhhhhhhh"}, {"fffffffffffffff", "hhhhhhhhhhhh"}}
    Dim s As String = String.Empty
    Dim n As Integer = 30, ii, nn As Integer
    RichTextBox1.Font = New Font(FontFamily.GenericMonospace, 9)
    For i = 0 To ss.GetLength(0) - 1
        s = ss(i, 0).PadRight(n) & ss(i, 1) & vbCrLf
        nn = s.Length - 1
        With RichTextBox1
            .AppendText(s)
            .SelectionStart = ii
            .SelectionLength = n - 1
            .SelectionFont = New Font(.SelectionFont, FontStyle.Bold + FontStyle.Italic)
            .SelectionColor = Color.Red
        End With
        ii += nn
    Next
End Sub

Но для подобной задачи, на мой взгляд, больше подошел бы ListView. Здесь можно еще добавить группировку и др.
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Button7_Click(sender As System.Object, e As System.EventArgs) Handles Button7.Click
    Dim ss(,) As String = {{"aaaa", "hhhhhhhhhhhhhhhhhhhh"}, {"bbbbbbb", "hhhhhhhhhhhhhhh"}, {"cccc", "hhhhhhhhhhhhhhh"}, {"ddddddd", "hhhhhhhhhhhhhhhhhhhh"}, {"eeeeeeee", "hhhhhhhhhhhhhhhh"}, {"fffffffffffffff", "hhhhhhhhhhhh"}}
    With ListView1
        .View = View.Details
        .BackColor = Color.LightGoldenrodYellow
        .BorderStyle = BorderStyle.FixedSingle
        .FullRowSelect = True
        .GridLines = True
        .Columns.Add("Термин", 120, HorizontalAlignment.Left)
        .Columns.Add("Значение термина", 500, HorizontalAlignment.Left)
        For i = 0 To ss.GetLength(0) - 1
            .Items.Add(ss(i, 0))
            .Items(i).SubItems.Add(ss(i, 1))
            .Items(i).ForeColor = Color.Red
            .Items(i).Font = New Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold Or FontStyle.Italic)
            .Items(i).UseItemStyleForSubItems = False
        Next
    End With
End Sub
1
Миниатюры
Выделение отдельных слов в RichTextBox жирным шрифтом   Выделение отдельных слов в RichTextBox жирным шрифтом  
1 / 1 / 1
Регистрация: 06.12.2016
Сообщений: 11
07.12.2016, 18:48  [ТС] 3
Спасибо! То, что нужно! А по поводу ListView - просто тоже не работал с ним никогда. Хотя, конечно, видно, что гораздо интереснее выходит.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2016, 18:48

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выделение повторяющихся слов жирным шрифтом. Не работает, если нет пробела перед первым словом
Здравствуйте, суть задания : есть строка например this this test test нужно выделить повторяющиеся...

Выделение текста жирным шрифтом
Добрый день! Есть диапазон ячеек. В некоторых из них записан текст через точку. Необходимо...

Как в RichTextBox выделять отдельные слова жирным шрифтом
Могу ли я в RichTextBox выделять отдельные слова жирным шрифтом (Bold)? Что записывать при этом в...

Выделение слова в форуме жирным шрифтом
Всем привет! Меня заинтересовал такой вопрос: Возьмём к примеру этот форум, и вот такой текст:...

MonthCalendar - выделение нужной даты жирным шрифтом
Такая проблема,решил сделать календарь. Посмотрел в интернете,есть метод AddBoldedDate,который...

Выделение в тексте жирным шрифтом прописными буквами 16 с мигающим фоном каждого четного символа в фигурных скобках
нужно написать этот макрос на выделение в тексте жирным шрифтом прописными буквами 16 с мигающим...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.