Visual Basic richtextbox - установка определенного текста для стиля курсивного шрифта
Я создал Richtextbox, который производит текст на основе введенных пользователем переменных, а также некоторые основные форматирования - например:
name = txtname.text
richtextbox1.text = "Hello my name is " & name & "."
То, что я хочу сделать, это установить текст в переменной имени курсивом, когда он отображается, как это.
Привет, меня зовут Боб.
Лучшее, что мне удалось найти, - это выбор диапазона, но мне не повезло.
Ура!
3 ответа
Dim BO As New Font("Arial", 12, FontStyle.italic) ' Italic
richtextbox1.text = "Hello my name is "
richtextbox1.selectionfont = BO
richtextbox1.appendtext(name)
Надеюсь это поможет
Попробуй это:
Me.RichTextBox1.Rtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}} hello my name is \i Bob\i0 \par}"
Если вы используете WordPad для написания образца текста, сохраните его в формате RTF, а затем откройте файл в блокноте, вы получите что-то для начала. Вы можете удалить часть того, что добавляет WordPad (например, программу, которая его сгенерировала), но похоже, что вы должны оставить хотя бы кодовую страницу и хотя бы один шрифт.
Я написал небольшую процедуру, которая делает это:
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)
,
Единственная проблема этого кода в том, что в данный момент он находит только первое существование искомой строки. Я использую его, чтобы выделить заголовки, чтобы это не было проблемой до сих пор (я не повторяю заголовки).