Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic richtextbox-将特定文本设置为斜体字体样式_Vb.net_Visual Studio 2010_Richtextbox_Text Formatting - Fatal编程技术网

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

Vb.net Visual Basic richtextbox-将特定文本设置为斜体字体样式,vb.net,visual-studio-2010,richtextbox,text-formatting,Vb.net,Visual Studio 2010,Richtextbox,Text Formatting,我创建了一个Richtextbox,它根据用户输入的变量以及一些基本格式生成文本-例如: name = txtname.text richtextbox1.text = "Hello my name is " & name & "." 我想做的是在显示名称变量时,将其文本设置为斜体,如下所示 你好,我叫鲍勃 我所能找到的最好的方法就是选择范围,但这方面我运气不好 干杯 试试这个: Me.RichTextBox1.Rtf = "{\rtf1\ansi\ansicpg1252\de

我创建了一个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格式,然后在记事本中打开该文件,您将获得一些开始。您可以删除wordpad添加的一些内容(如生成它的程序),但看起来您必须至少保留代码页和至少一种字体

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)


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

请澄清,VB6或VB.NET.Ah抱歉。我正在使用Visual Studio 2010,我相信它是.net?很抱歉,在理解您的答案时遇到了一些问题。您是否建议将字符串导出到写字板中,通过添加斜体格式对其进行修改,然后将其导入到VB中,以便在应用斜体格式的情况下显示该字符串?首先,您需要设置富文本框的.Rtf属性,我想更多地使用写字板来发现rtf所需的标记,而不是.text属性。一旦知道所需的rtf字符串的开始和结束,以及\i和\i0开始和结束斜体,就可以构建自己的rtf字符串。