2012-10-08 6 views
5

mam ten kod:Jak dodać pogrubiony tekst w Rich TextBox programowo za pomocą VB.NET

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) 

Teraz powyższych danych dodaję programowo i działa dobrze. Jednak w powyższym kodzie chcę dodać Patient number i Last name pogrubioną czcionką.

Odpowiedz

9

Przy zastosowaniu RichTextBox, dlaczego nie wystarczy użyć RTF?


przykład:

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 

Wynik:

RichTextBox with bold text

MSDN


W ten sposób można również łatwo owinąć rzeczy RTF do metod rozszerzenie:

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 

i używać go jak

Dim text = "This number is bold: " + "123".ToBold() + "! Yes, it is..." 
print_text.Rtf = text.ToRtf() 
+0

Ładne i zadbane rozwiązanie, podoba mi się. – Raffaeu

3

Użyj właściwości RichTextBox.SelectionFont.
Sprawdź te linki na MSDN, jak to zrobić: Link 1 i Link 2

Nadzieję, że to pomaga.
EDIT:

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 
+0

To jest dla zaznaczonego tekstu. Czego chcę, to że dane, które dodaję dynamicznie do bogatego Textboxa powinny być pogrubioną czcionką. –

+0

Nie chodzi o dynamiczne czy statyczne. Możesz użyć tej właściwości w dowolnym miejscu, ale musisz jej użyć w odpowiedni sposób. Zaktualizowałem swoją odpowiedź, dodając prosty przykład. Proszę spojrzeć. Dzięki. – Luftwaffe

+0

Fajna, pozwól mi spróbować ... dzięki za pomoc :) –