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