Выделение отдельных слов в RichTextBox жирным шрифтом - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

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

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

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

Решение задачи: «Выделение отдельных слов в RichTextBox жирным шрифтом»

textual
Листинг программы
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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5