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

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

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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут