2010-07-14 3 views
1

로깅을 위해 WinForms TextBox 컨트롤을 사용하고 있습니다. 스크롤 막대가있는 여러 줄로 설정되었습니다.자동 추적 커서가있는 텍스트 상자에 로깅

textBox.Text += logMessage; 

스크롤 막대가 자동으로 최신 로그 항목을 따르지 않습니다. 이것을 할 수있는 방법이 있습니까?

답변

1

SelectionStart property을 텍스트 길이로 설정 한 다음 ScrollToCaret으로 전화하십시오.

+0

나는 두 가지 방법을 독립적으로 시도했지만 함께 사용하지는 않았다. 고맙습니다! –

1

나는 파티에 늦었지만, 이렇게 로깅 할 때주의해야 할 사항은 텍스트 필드의 길이입니다. 당신은 그 머리를 너무 자주 자르고 싶다. (너무 자주는 아니지만 ...). 내가 사용한 전략은 최대 글자 수 제한 인 5000을 사용하고 텍스트가 한도의 두 배에 도달하면 한도로 줄이는 것입니다.

string LimitText(string Text) 
{ 
    int textLimit = 5000; 
    //let the field grow to double the limit, then chop it in half 
    if (Text.Length > textLimit * 2) 
    { 
     Text = Text.Substring(Text.Length - textLimit, textLimit); 
    } 
    return Text; 
} 

하위 문자열 작업의 발생을 줄이기 위해 이중 한계가 있습니다. 또한 텍스트 필드에 지속적으로 추가되는 장시간 실행되는 프로그램에서이 기능을 사용하는 경우에만 문제가됩니다. (그래, 난 또한 텍스트 파일에 로그온하고 정상적으로 디버깅을 위해 사용합니다. 이것은 빠른 진단을위한 것입니다 ...)

+0

큰 충고, 고마워요! –

관련 문제