[c#] 런타임에 텍스트 상자의 텍스트를 굵게 설정하려면 어떻게합니까?

저는 Windows 양식을 사용하고 있으며 특정 값인 경우 텍스트를 굵게 만들고 싶은 텍스트 상자가 있습니다.

런타임에 글꼴 특성을 어떻게 변경합니까?

textbox1.Font.Bold라는 속성이 있지만 이것은 Get 전용 속성입니다.



답변

글꼴 자체의 굵은 체 속성은 읽기 전용이지만 텍스트 상자의 실제 글꼴 속성은 그렇지 않습니다. 다음과 같이 텍스트 상자의 글꼴을 굵게 변경할 수 있습니다.

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

그리고 다시 :

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


답변

응용 프로그램에 따라 해당 글꼴 할당을 텍스트 변경 또는 해당 텍스트 상자의 포커스 / 언 포커스에 사용하고 싶을 것입니다.

다음은 모양에 대한 간단한 샘플입니다 (텍스트 상자 만있는 빈 양식. 텍스트가 ‘굵게’표시되고 대소 문자를 구분하지 않으면 글꼴이 굵게 표시됨).

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


답변

다음 과 같이 일반 스타일굵은 스타일Extension 사이를 전환 하는 방법을 사용할 수 있습니다 .

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

그리고 사용법 :

textBox1.SwtichToBoldRegular();


답변

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


답변