Visual Basic richtextbox - установка определенного текста для стиля курсивного шрифта - PullRequest
1 голос
/ 19 марта 2011

Я создал Richtextbox, который создает текст на основе введенных пользователем переменных, а также некоторые базовые форматирования - например:

name = txtname.text
richtextbox1.text = "Hello my name is " & name & "."

То, что я хочу сделать, это установить текст в переменной имени курсивом, когда он отображается, например так.

Здравствуйте, меня зовут Боб .

Лучшее, что мне удалось найти, - это выбор диапазонов, но мне не повезло.

Ура!

Ответы [ 3 ]

1 голос
/ 01 июня 2011
Dim BO As New Font("Arial", 12, FontStyle.italic) ' Italic
  richtextbox1.text = "Hello my name is " 
  richtextbox1.selectionfont = BO
  richtextbox1.appendtext(name)

Надеюсь, это поможет

1 голос
/ 03 января 2012

Я написал небольшую подпрограмму, которая делает это:

Private Sub changeRTF(ByVal strToChange As String, ByRef richTextBox As RichTextBox, ByVal color As Color, Optional ByVal ital As Boolean = False, Optional ByVal bold As Boolean = False, Optional ByVal pointSize As Single = -1)
    richTextBox.SelectionStart = richTextBox.Find(strToChange, RichTextBoxFinds.MatchCase)

    If ital And bold Then
        richTextBox.SelectionFont = New Font(richTextBox.Font, FontStyle.Bold + FontStyle.Italic)
    Else
        If ital Then richTextBox.SelectionFont = New Font(richTextBox.Font, FontStyle.Italic)
        If bold Then richTextBox.SelectionFont = New Font(richTextBox.Font, FontStyle.Bold)
    End If

    richTextBox.SelectionColor = color

    Dim originalFontFamily As FontFamily = richTextBox.SelectionFont.FontFamily
    Dim originalFontStyle As FontStyle = richTextBox.SelectionFont.Style

    If pointSize > 0 Then richTextBox.SelectionFont = New Font(originalFontFamily, pointSize, originalFontStyle)
End Sub

Итак, вы должны создать свой текст, а затем вызвать changeRTF("Bob",richtextbox1,color.gold,true).

Единственная проблема с этим кодом - этов настоящее время находит только первое существование строки, которую вы ищетеЯ использую его для выделения названий, поэтому пока проблем не было (я не повторяю заголовки).

1 голос
/ 20 марта 2011

Попробуйте это:

Me.RichTextBox1.Rtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}} hello my name is \i Bob\i0 \par}"

Если вы используете WordPad для написания образца текста, сохраните его в формате RTF, а затем откройте файл в блокноте, вы получите что-то для начала. Вы можете удалить часть того, что добавляет WordPad (например, программу, которая его сгенерировала), но похоже, что вам нужно оставить хотя бы кодовую страницу и хотя бы один шрифт.

...