Używam formularzy systemu Windows i mam pole tekstowe, w którym czasami chciałbym pogrubić tekst, jeśli jest to określona wartość.
Jak zmienić charakterystykę czcionki w czasie wykonywania?
Widzę, że istnieje właściwość o nazwie textbox1.Font.Bold, ale jest to właściwość tylko do pobierania.
W zależności od aplikacji prawdopodobnie będziesz chciał użyć tego przypisania czcionki do zmiany tekstu lub skupienia / rozjaśnienia danego pola tekstowego.
Oto krótka próbka tego, jak to mogłoby wyglądać (pusty formularz, tylko z polem tekstowym. Czcionka staje się pogrubiona, gdy tekst jest „pogrubiony”, bez rozróżniania wielkości liter):
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); } } }
źródło
Możesz użyć
Extension
metody przełączania między stylem zwykłym a stylem pogrubionym, jak poniżej: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); } }
I użycie:
źródło
Oto przykład przełączania pogrubienia, podkreślenia i kursywy.
protected override bool ProcessCmdKey( ref Message msg, Keys keyData ) { if ( ActiveControl is RichTextBox r ) { if ( keyData == ( Keys.Control | Keys.B ) ) { r.SelectionFont = new Font( r.SelectionFont, r.SelectionFont.Style ^ FontStyle.Bold ); // XOR will toggle return true; } if ( keyData == ( Keys.Control | Keys.U ) ) { r.SelectionFont = new Font( r.SelectionFont, r.SelectionFont.Style ^ FontStyle.Underline ); // XOR will toggle return true; } if ( keyData == ( Keys.Control | Keys.I ) ) { r.SelectionFont = new Font( r.SelectionFont, r.SelectionFont.Style ^ FontStyle.Italic ); // XOR will toggle return true; } } return base.ProcessCmdKey( ref msg, keyData ); }
źródło
txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold); //Font(Font Name,Font Size,Font.Style)
źródło