我创建了一个 Richtextbox,它根据用户输入的变量以及一些基本格式生成文本 - 例如:
name = txtname.text
richtextbox1.text = "Hello my name is " & name & "."
我想要做的是在显示时以斜体设置名称变量中的文本,就像这样。
你好,我的名字是鲍勃。
我能找到的最好的是与选择范围有关,但没有任何运气。
干杯!
我创建了一个 Richtextbox,它根据用户输入的变量以及一些基本格式生成文本 - 例如:
name = txtname.text
richtextbox1.text = "Hello my name is " & name & "."
我想要做的是在显示时以斜体设置名称变量中的文本,就像这样。
你好,我的名字是鲍勃。
我能找到的最好的是与选择范围有关,但没有任何运气。
干杯!
尝试这个:
Me.RichTextBox1.Rtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}} hello my name is \i Bob\i0 \par}"
如果您使用写字板编写一些示例文本,将其保存为 rtf 格式,然后在记事本中打开文件,您将得到一些开始。您可以删除一些写字板添加的内容(例如生成它的程序),但看起来您至少必须保留代码页和至少一种字体。
Dim BO As New Font("Arial", 12, FontStyle.italic) ' Italic
richtextbox1.text = "Hello my name is "
richtextbox1.selectionfont = BO
richtextbox1.appendtext(name)
希望这可以帮助
我写了一个小程序来做到这一点:
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)
.
这段代码的唯一问题是它目前只能找到您要查找的字符串的第一个存在。我用它来突出标题,所以到目前为止它还不是问题(我不重复标题)。