로깅을 위해 WinForms TextBox 컨트롤을 사용하고 있습니다. 스크롤 막대가있는 여러 줄로 설정되었습니다.자동 추적 커서가있는 텍스트 상자에 로깅
textBox.Text += logMessage;
스크롤 막대가 자동으로 최신 로그 항목을 따르지 않습니다. 이것을 할 수있는 방법이 있습니까?
로깅을 위해 WinForms TextBox 컨트롤을 사용하고 있습니다. 스크롤 막대가있는 여러 줄로 설정되었습니다.자동 추적 커서가있는 텍스트 상자에 로깅
textBox.Text += logMessage;
스크롤 막대가 자동으로 최신 로그 항목을 따르지 않습니다. 이것을 할 수있는 방법이 있습니까?
의 SelectionStart
property을 텍스트 길이로 설정 한 다음 ScrollToCaret
으로 전화하십시오.
나는 파티에 늦었지만, 이렇게 로깅 할 때주의해야 할 사항은 텍스트 필드의 길이입니다. 당신은 그 머리를 너무 자주 자르고 싶다. (너무 자주는 아니지만 ...). 내가 사용한 전략은 최대 글자 수 제한 인 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;
}
하위 문자열 작업의 발생을 줄이기 위해 이중 한계가 있습니다. 또한 텍스트 필드에 지속적으로 추가되는 장시간 실행되는 프로그램에서이 기능을 사용하는 경우에만 문제가됩니다. (그래, 난 또한 텍스트 파일에 로그온하고 정상적으로 디버깅을 위해 사용합니다. 이것은 빠른 진단을위한 것입니다 ...)
큰 충고, 고마워요! –
나는 두 가지 방법을 독립적으로 시도했지만 함께 사용하지는 않았다. 고맙습니다! –