2010-06-21 28 views

Respuesta

128

La propiedad en negrita de la fuente en sí es de solo lectura, pero la propiedad de fuente real del cuadro de texto no lo es. Puede cambiar la fuente del cuadro de texto en negrita de la siguiente manera:

textBox1.Font = new Font(textBox1.Font, FontStyle.Bold); 

y luego de vuelta:

textBox1.Font = new Font(textBox1.Font, FontStyle.Regular); 
+1

gracias! wow, eso fue mucho más fácil de lo que imaginaba. Así que supongo que eso significa que una fuente es como una cadena, una vez que la creas, no puedes cambiarla. solo puedes declarar una nueva instancia de este. – Diskdrive

+2

Sí, parece comportarse como una cadena en términos de no poder cambiar su estado una vez creado, es decir, es [inmutable] (http://en.wikipedia.org/wiki/Immutable_object). Sin embargo, aunque hay artículos de MSDN que hacen referencia a que la fuente es inmutable, la referencia real de la fuente no indica esto. –

+0

para un botón de enlace esto funcionó para mí: button.Font.Bold = true – deebs

2

Dependiendo de la aplicación, es probable que desee utilizar esa asignación de fuente, ya sea en el texto cambiar o enfocar/desenfocar el cuadro de texto en cuestión.

Aquí hay una muestra rápida de lo que podría parecer (forma vacía, con sólo un cuadro de texto de fuente se convierte en negrita cuando el texto se lee 'negrita', entre mayúsculas y minúsculas.):

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     RegisterEvents(); 
    } 

    private void RegisterEvents() 
    { 
     _tboTest.TextChanged += new EventHandler(TboTest_TextChanged); 
    } 

    private void TboTest_TextChanged(object sender, EventArgs e) 
    { 
     // Change the text to bold on specified condition 
     if (_tboTest.Text.Equals("Bold", StringComparison.OrdinalIgnoreCase)) 
     { 
      _tboTest.Font = new Font(_tboTest.Font, FontStyle.Bold); 
     } 
     else 
     { 
      _tboTest.Font = new Font(_tboTest.Font, FontStyle.Regular); 
     } 
    } 
} 
1

Usted podría utilizar Extension método para cambiar entre Estilo regular y estilo intrépido de la siguiente manera:

static class Helper 
    { 
     public static void SwtichToBoldRegular(this TextBox c) 
     { 
      if (c.Font.Style!= FontStyle.Bold) 
       c.Font = new Font(c.Font, FontStyle.Bold); 
      else 
       c.Font = new Font(c.Font, FontStyle.Regular); 
     } 
    } 

y uso:

textBox1.SwtichToBoldRegular(); 
Cuestiones relacionadas