Visual Basic richtextbox - 将特定文本设置为Italic字体样式

时间:2011-03-19 15:18:02

标签: vb.net visual-studio-2010 richtextbox text-formatting

我创建了一个Richtextbox,它根据用户输入的变量以及一些基本格式生成文本 - 例如:

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

我想要做的是在显示时在Italics中设置名称变量中的文本,如下所示。

您好我的名字是 Bob

我能找到的最好的选择范围,但没有任何运气。

干杯!

3 个答案:

答案 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)

此代码的唯一问题是它目前只找到您要查找的字符串的第一个存在。我用它来突出标题,所以到目前为止它还没有出现问题(我不重复标题)。