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

Posted

技术标签:

【中文标题】Visual Basic richtextbox - 将特定文本设置为斜体字体样式【英文标题】:Visual Basic richtextbox - setting specific text to Italic font style 【发布时间】:2011-03-19 15:18:01 【问题描述】:

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

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

我想要做的是在显示时以斜体设置名称变量中的文本,就像这样。

你好,我的名字是 Bob

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

干杯!

【问题讨论】:

请澄清,VB6 或 VB.NET。 抱歉。我正在使用 Visual Studio 2010,我相信它是 .net? 【参考方案1】:

试试这个:

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

如果您使用写字板编写一些示例文本,将其保存为 rtf 格式,然后在记事本中打开文件,您将得到一些开始。您可以删除一些写字板添加的内容(例如生成它的程序),但看起来您至少必须保留代码页和至少一种字体。

【讨论】:

抱歉,在理解您的答案时遇到了一些问题。您是否建议将字符串导出到写字板,通过添加斜体格式来更改它,然后将其导入回 VB 以便在应用斜体格式的情况下显示它? 首先需要设置富文本框的.Rtf属性,而不是.text属性。 我正在考虑更多地使用写字板来发现 rtf 所需的标记。一旦您知道 rtf 字符串所需的开始和结束,以及 \i 和 \i0 开始和结束斜体,您就可以构建自己的 rtf 字符串。【参考方案2】:
Dim BO As New Font("Arial", 12, FontStyle.italic) ' Italic
  richtextbox1.text = "Hello my name is " 
  richtextbox1.selectionfont = BO
  richtextbox1.appendtext(name)

希望对你有帮助

【讨论】:

【参考方案3】:

我写了一个小程序来做这个:

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)

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

【讨论】:

以上是关于Visual Basic richtextbox - 将特定文本设置为斜体字体样式的主要内容,如果未能解决你的问题,请参考以下文章

(Visual C#) 在RichTextBox中实现查找特定字符并返回结果的功能

text Visual Basic代码Emmet

text Visual Basic代码片段

text Visual Basic代码命令

text Visual Basic代码Vue设置

text Visual Basic代码Vue扩展/插件