visual tipo tamaño subrayado poner para negritas negrita letra forecolor cursiva codigo cambiar c# winforms textbox fonts

c# - tipo - ¿Cómo configuro el texto de un cuadro de texto en negrita en tiempo de ejecución?



negritas en textbox (4)

Estoy usando formularios de Windows y tengo un cuadro de texto que de vez en cuando me gustaría hacer que el texto sea negrita si tiene un valor determinado.

¿Cómo cambio las características de la fuente en tiempo de ejecución?

Veo que hay una propiedad llamada textbox1.Font.Bold pero esta es una propiedad Obtener solo.


Dependiendo de su aplicación, es probable que desee utilizar esa asignación de fuente en el cambio de texto o enfoque / desenfoque del cuadro de texto en cuestión.

Aquí hay una muestra rápida de cómo podría verse (forma vacía, con solo un cuadro de texto. La fuente se pone en negrita cuando el texto dice ''negrita'', no distingue 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); } } }


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

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

Y luego de regreso:

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


Puede usar el método de Extension para cambiar entre el Estilo Regular y el Estilo Negrita 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 el uso:

textBox1.SwtichToBoldRegular();


txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold); //Font(Font Name,Font Size,Font.Style)