How do I set a textbox's text to bold at run time?

前端 未结 5 1413
野的像风
野的像风 2020-12-08 12:44

I\'m using Windows forms and I have a textbox which I would occassionally like to make the text bold if it is a certain value.

How do I change the font characteristi

相关标签:
5条回答
  • 2020-12-08 13:03
     txtText.Font = new Font("Segoe UI", 8,FontStyle.Bold);
     //Font(Font Name,Font Size,Font.Style)
    
    0 讨论(0)
  • 2020-12-08 13:15

    You could use Extension method to switch between Regular Style and Bold Style as below:

    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);
            }
        }
    

    And usage:

    textBox1.SwtichToBoldRegular();
    
    0 讨论(0)
  • 2020-12-08 13:16

    Depending on your application, you'll probably want to use that Font assignment either on text change or focus/unfocus of the textbox in question.

    Here's a quick sample of what it could look like (empty form, with just a textbox. Font turns bold when the text reads 'bold', case-insensitive):

    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);
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-08 13:23

    Here is an example for toggling bold, underline, and italics.

       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 );
       }
    
    0 讨论(0)
  • 2020-12-08 13:26

    The bold property of the font itself is read only, but the actual font property of the text box is not. You can change the font of the textbox to bold as follows:

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

    And then back again:

      textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);
    
    0 讨论(0)
提交回复
热议问题