none
RichTextBox 라인별 색 적용 문의 RRS feed

  • 질문

  • 안녕하세요

    시리얼 통신 프로그램을 짜고 있는데 수신받은 데이터를 RichTextBox에 뿌려주고 있습니다.

    그리고 데이터 내용에 따라 라인 별 색을 별도로 주고 있고요

    아래는 예제 코드입니다.

    시리얼 데이터는 100ms 마다 수신되고 하루종일 수신 받아야됩니다.

    그래서 AppendText만 해서 출력하니 한 10분만 받아도 느려지는 현상이 발생하더군요

    그래서 아래와 같이 1줄 추가될때마다 기존 데이터 하나를 삭제하고 나머지 데이터를 다시 옴겨놓은 처리를 하였습니다.

    여기서 문제가 발생됩니다.

    기존 데이터를 newlines에 저장하고 다시 richTextBox1.Lines에 복사할때 속성이 복사가 안되더군요 즉, 컬러가 지워지는 현상이 발생합니다.

    Rtf를 봐도 모르겠네요...

    감사합니다.

    richTextBox1.SelectionColor = Color.Red;

    richTextBox1.Append(recv_data); if (richTextBox1.Lines.Length > bufferSize) { string[] newLines = new string[bufferSize]; Array.Copy(richTextBox1.Lines, 1, newLines, 0, bufferSize); richTextBox1.Lines = newLines; } richTextBox1.SelectionStart = richTextBox1.Text.Length; richTextBox1.ScrollToCaret();

    2016년 2월 27일 토요일 오후 8:08

답변

  • 타이머? 를 활용하신건지 멀티스레드 인지는 모르겠습니다만

    richTextBox1.Refresh(); 를 최종문장에 넣어보셨나요?

    그리고, 별개의 이야기인데 AppendText 를 해서 10분만에 느려진다는건 메모리릭 현상인것 같은데 다른곳에 혹시 문제가 없는지 확인해보세요.


    프로그램 개발에는 정답이 없다.

    2016년 2월 29일 월요일 오전 2:35