2016-10-24 3 views
0

richtexbox을 사용하여 내 응용 프로그램에 대한 로그를 저장합니다. 나는 또한 그것을 배경 작업자를위한 일종의 진행 바 (bar)로 사용하고있다.RichTextBox가 자동으로 줄을 바꿀 때까지 스크롤

세부 사항으로 이동하지는 않지만 응용 프로그램이 여러 장치를 반복하고 데이터를 수집하면 처리중인 현재 데이터가 richtextbox의 마지막 줄에 표시되고 새 데이터가 처리 될 때마다 대체됩니다.

다음은 로그의 작은 샘플입니다.

Found 239 record(s), Transferred 239 record(s) from: 10.10.10.10 - 10/24/2016 7:37:45 PM 
Found 42 record(s), Transferred 42 record(s) from: 10.10.10.11 - 10/24/2016 7:37:58 PM 
43593... 

마지막 줄은 처리하는 동안 다른 데이터로 대체됩니다. 완료 될 때까지 이처럼 다시 교체하십시오.

Found 239 record(s), Transferred 239 record(s) from: 10.10.10.10 - 10/24/2016 7:37:45 PM 
Found 42 record(s), Transferred 42 record(s) from: 10.10.10.11 - 10/24/2016 7:37:58 PM 
Found 2 record(s), Transferred 2 record(s) from: 10.10.10.12 - 10/24/2016 7:38:03 PM 
986035... 

내가 AppendText를 사용하여 RichTextBox에 데이터를 추가,이 잘 작동하고 나는 새 레코드를 추가 아래로하여 RichTextBox를 스크롤합니다. 하지만 내 "진행률 표시 줄"내가 이렇게 마지막 줄을 바꿉니다

Me.rtbLogs.Rtf = Me.rtbLogs.Rtf.Replace(Me.rtbLogs.Lines(rtbLogs.Lines.Length - 1), e.UserState.ToString()) 

모든 것이가를 RichTextBox 스크롤 돌아 가기 텍스트를 교체하는 동안에 제외하고 잘 작동합니다.

+0

[C#을 상단으로 점프/스크롤에서하여 RichTextBox 방지]의 사용 가능한 복제 (http://stackoverflow.com/questions/12787066/c-sharp-preventing-richtextbox-from-scrolling-jumping- 상단으로) – Jim

답변

0

텍스트의 끝으로 스크롤해야합니다. 이 시도 :

' Append the new text and a new line 
RichTextbox1.AppendText("New Text" & vbNewLine) 
    ' Sets the starting point of the selection   
RichTextbox1.SelectionStart = Len(RichTextbox1.Text) 
    ' Scrolls to the caret 
RichTextbox1.ScrollToCaret() 
    ' Select the range 
RichTextbox1.Select()