如何使用VB.NET以编程方式在Rich TextBox中添加粗体文本

Dja*_*ous 6 c# vb.net richtextbox

我有这个代码:

print_text.Text = "Patient number: " + ds.Tables("patients").Rows(0).Item(0)
print_text.AppendText(Environment.NewLine)
print_text.Text = print_text.Text + "Last name: " + ds.Tables("patients").Rows(0).Item(1)
print_text.AppendText(Environment.NewLine)
Run Code Online (Sandbox Code Playgroud)

现在上面的数据我正在以编程方式添加,它工作正常.但是在上面的代码中我想添加Patient numberLast name以粗体显示.

slo*_*oth 10

使用时RichTextBox,为什么不使用RTF?


例:

Sub Main
    Dim f = new Form()
    Dim print_text = new RichTextBox() With {.Dock = DockStyle.Fill}
    f.Controls.Add(print_text)

    Dim sb = new System.Text.StringBuilder()
    sb.Append("{\rtf1\ansi")
    sb.Append("This number is bold: \b 123\b0 ! Yes, it is...")
    sb.Append("}")
    print_text.Rtf = sb.ToString()

    f.ShowDialog()
End Sub
Run Code Online (Sandbox Code Playgroud)

结果:

带有粗体文本的RichTextBox

MSDN


这样,您还可以轻松地将RTF内容包装到扩展方法中:

Module RtfExtensions

    <Extension()>
    Public Function ToRtf(s As String) As String
        Return "{\rtf1\ansi" + s + "}"
    End Function

    <Extension()>
    Public Function ToBold(s As String) As String
        Return String.Format("\b {0}\b0 ", s)
    End Function

End Module
Run Code Online (Sandbox Code Playgroud)

并使用它

Dim text = "This number is bold: " + "123".ToBold() + "! Yes, it is..."
print_text.Rtf = text.ToRtf()
Run Code Online (Sandbox Code Playgroud)


Sau*_*R S 5

使用该RichTextBox.SelectionFont财产。
检查这些 MSDN 链接以了解如何执行此操作:链接 1链接 2

希望能帮助到你。
编辑:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim len As Integer
    RichTextBox1.Text = "Patient number: " + " 12345"
    RichTextBox1.SelectionStart = 0
    RichTextBox1.SelectionLength = "Patient number".Length
    RichTextBox1.SelectionFont = New Font("Arial", 12, FontStyle.Bold)
    RichTextBox1.SelectionLength = 0
    RichTextBox1.AppendText(Environment.NewLine)
    len = RichTextBox1.Text.Length
    RichTextBox1.AppendText("Last name: " + " ABCD")
    RichTextBox1.SelectionStart = len
    RichTextBox1.SelectionLength = "Last name".Length
    RichTextBox1.SelectionFont = New Font("Arial", 12, FontStyle.Bold)
    RichTextBox1.SelectionLength = 0
End Sub
Run Code Online (Sandbox Code Playgroud)