2012-10-08 41 views
5

tôi có mã này:Làm thế nào để thêm một chữ in đậm trong Giàu TextBox programatically sử dụng 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) 

Bây giờ các dữ liệu trên tôi đang bổ sung thêm programatically và nó hoạt động tốt. Tuy nhiên trong đoạn mã trên tôi muốn thêm Patient numberLast name bằng phông chữ đậm.

Trả lời

9

Khi sử dụng một RichTextBox, tại sao không chỉ cần sử dụng RTF?


Ví dụ:

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 

Kết quả:

RichTextBox with bold text

MSDN


Bằng cách này, bạn cũng có thể dễ dàng quấn những thứ RTF vào phương pháp khuyến nông:

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 

và sử dụng nó như

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

Giải pháp tốt và gọn gàng, tôi thích nó. – Raffaeu

3

Sử dụng thuộc tính RichTextBox.SelectionFont.
Kiểm tra các Liên kết MSDN này về cách thực hiện việc này: Link 1Link 2

Hy vọng điều đó sẽ hữu ích.
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

này là dành cho một văn bản đã chọn. Những gì tôi muốn là dữ liệu tôi đang thêm tự động vào Textbox phong phú nên được in đậm phông chữ –

+0

Nó không phải về động hoặc tĩnh. Bạn có thể sử dụng tài sản này ở bất kỳ nơi nào nhưng sẽ cần phải sử dụng nó một cách thích hợp. Tôi đã cập nhật câu trả lời của mình để bao gồm một ví dụ đơn giản. Xin hãy xem. Cảm ơn. – Luftwaffe

+0

Tốt nhất, hãy để tôi thử ... cảm ơn sự giúp đỡ :) –

Các vấn đề liên quan