본문 바로가기
Study/C#(Window programming)

c# RichTextBox 텍스트 라인 유지(FIFO방식)

by Answer Choi 2020. 8. 20.
반응형

일반적인 터미널을 보게되면, 버퍼가 가득차면 오래된 로그부터 사라집니다.

 

c#에서도 터미널처럼 제일 오래된 라인부터 없애고 텍스트 박스의 텍스트를 

 

일정 라인수만큼 유지할 수 있습니다.

 

int maxline = 10000;
if (messageRich.Lines.Length > maxline)
{
     messageRich.Select(0, messageRich.GetFirstCharIndexFromLine(messageRich.Lines.Length - maxline));
     messageRich.SelectedText = "";
     messageRich.AppendText("\n");
}
else
{
     messageRich.AppendText("\n");
}   
messageRich.ScrollToCaret();

messageRich가 RichTextBox입니다.

 

Line 1의 maxline은 최대 표시할 라인수입니다.

Line 2~Line 5 : 이부분이 실질적으로 라인을 유지시켜주고, 초과된 앞 라인을 없애주는 부분입니다.

원리는 초과된 라인을 다 ""로 글자를 없애버립니다.

 

Line 6 : 줄바꿈을 하는 이유는 만약 뿌려주는 글자가 색이 있는 경우 저런식으로 줄바꿈을 해줘야 

원래 지정해 놓은 색이 그대로 출력됩니다.

 

만약 안하면 검은색으로 나오게 됩니다.

 

<줄바꿈 적용>

 

<줄바꿈 미적용>

scrolltocaret은 스크롤을 제일 밑으로 내려오게 합니다.

 

반응형

인기글