2012-10-08 203 views
5

tengo este código:¿Cómo añadir un texto en negrita en Rich TextBox utilizando VB.NET programáticamente

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) 

Ahora los datos anteriores, añado programáticamente y trabaja muy bien. Sin embargo, en el código anterior quiero agregar Patient number y Last name en negrita.

Respuesta

9

Cuando se utiliza un RichTextBox, ¿por qué no usar RTF?


Ejemplo:

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 

Resultado:

RichTextBox with bold text

MSDN


De esta manera, también se puede ajustar fácilmente el material RTF en los métodos de extensión:

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 

y utilizarlo como

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

Solución agradable y ordenada, me gusta. – Raffaeu

3

Utilice la propiedad RichTextBox.SelectionFont.
comprobar estos enlaces MSDN sobre cómo hacer esto: Link 1 y Link 2

espero que ayude.
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

Se trata de un texto seleccionado. Lo que quiero es que los datos que agregue dinámicamente al texto enriquecido estén en negrita –

+0

No se trata de dinámica o estática. Puede usar esta propiedad en cualquier lugar, pero deberá usarla adecuadamente. He actualizado mi respuesta para incluir un ejemplo simple. Por favor échale un vistazo. Gracias. – Luftwaffe

+0

Bueno, déjame intentar ... gracias por la ayuda :) –

Cuestiones relacionadas