2011-02-14 2 views
1

약 20 줄에 일부 텍스트 데이터를 표시하려고합니다. 모든 줄은 서식의 크기보다 길 수 있습니다. 이 경우 라인의 나머지는 잘려야합니다.C# - 빠른 ListBox 데이터 업데이트

h 또는 v 스크롤 막대를 갖고 싶지 않습니다.

ListBox 컨트롤이 내 요구 사항을 처리 할 수 ​​있으므로 사용하려고했습니다. 모든 것이 잘 작동하지만 무거운 디스크로드가 발생하면 컨트롤이 깜박 거리기 시작하고 이것이 필요하다고 생각하지 않습니다. 나는 초당 한 번씩 데이터를 업데이트하고 있으며 항상 텍스트 데이터가 20 줄 미만입니다. ListBox를 잘못 사용하고있는 것 같습니다.

문자열이나 문자열 배열로 다른 스레드에서 데이터를 준비 할 수 있지만 모든 경우에 전체 ListBox를 업데이트해야합니다. ListBox에 데이터를 채우는 데 가장 적합한 기술은 무엇입니까? ListBox와 함께 사용하도록 전환 할 수있는 두 개의 버퍼를 가질 수 있습니까? 당신은 단지 바인딩을 업데이트 한 후 데이터 바인딩을 만들 수 중 하나

답변

2

ListBox에 데이터를 추가하기 전에 SuspendLayout()을 호출 한 다음 ListBox에서 ResumeLayout()을 호출하십시오. 그 깜박임을 약간 잃을 수도 있습니다.

+0

나는 이것을 시도 할 것이다. .. 고마워! – fpdragon

0

희망이 더 나은 해결책이는 ..., 그게 잘 작동합니다. 저렴한 방법은 목록 상자의 가시성을 변경하고 처음에는 보이지 않게하고 끝 부분에는 표시하는 것입니다. 싸고, 그러나 일해야한다. ;)

+0

지금은 데이터가 변경 될 때마다 전환되는 두 개의 데이터 바인딩을 사용하고 있습니다. 이 데이터 바인딩 스위치가 컨트롤을 깜박이는 것으로 보입니다. 가시성이란 무엇을 의미합니까? 2 개의 동등한 컨트롤이 겹쳐져 있고 위쪽 contol의 가시성을 토글합니까? 매우 싼 것 같습니다. 아무튼 감사 해요! – fpdragon