프로그램(C# etc.)

richTextBox1 출력하고 제일 하단으로 내리는 코드

질문폭격 2023. 1. 12. 16:15

다음은 "richTextBox1"이라는 이름의 RichTextBox 컨트롤에 텍스트를 쓴 다음 컨트롤 하단으로 스크롤하는 예입니다:

private void writeToRichTextBox(string text)
{
    if (richTextBox1.InvokeRequired)
    {
        richTextBox1.Invoke((MethodInvoker)delegate
        {
            richTextBox1.AppendText(text + Environment.NewLine);
            richTextBox1.SelectionStart = richTextBox1.Text.Length;
            richTextBox1.ScrollToCaret();
        });
    }
    else
    {
        richTextBox1.AppendText(text + Environment.NewLine);
        richTextBox1.SelectionStart = richTextBox1.Text.Length;
        richTextBox1.ScrollToCaret();
    }
}

InvokeRequired 검사는 메서드가 올바른 스레드(이 경우 RichTextBox 컨트롤을 만든 스레드)에서 호출되는지 확인하는 데 필요합니다. InvokeRequired가 true를 반환하는 경우 다른 스레드에서 Invoke 메서드를 사용하여 RichTextBox를 업데이트하는 대리자를 호출해야 합니다. false가 반환되면 우리는 같은 스레드에 있으며 안전하게 컨트롤을 업데이트할 수 있습니다.

AppendText 메서드는 함수에 전달된 텍스트를 RichTextBox 끝에 추가하는 데 사용됩니다. SelectionStart 속성은 리치 텍스트 상자의 텍스트 끝으로 설정됩니다. 마지막으로 ScrollToCaret는 자동으로 텍스트 끝으로 스크롤하여 가장 최근의 텍스트를 볼 수 있도록 하는 데 사용됩니다.