2008-09-25 2 views
1

때때로 ListView는 약 10000 개의 항목을 넣어야합니다. ListView는 실제로이 항목을 처리하지 않으며 항목을 정렬하는 동안 몇 초 동안 잠급니다. 그들을 그려라. 개별적으로 항목을 추가하면 더 악화되어 거의 1 분 동안 잠 깁니다.ListView에서 배경을 그려야합니다.

이 문제를 해결하려면 표시하기 전에 ListView를 채우려 고 생각했지만 불행히도 다른 아이디어가 있습니다. ListView가 포함 된 패널을 표시 할 때 그리기를 시작하기 만하면 몇 초 동안 프로그램이 중단됩니다.

이 지연을 어떻게 없앨 수 있습니까? 또는 대량의 데이터를 표시 할 때 상대적으로 사용하기 쉬운 다른 구성 요소가 있습니까?

답변

7

VirtualMode을 사용해야합니다.

+0

오 남자, VirtualMode 인식하지 못하는 경우 내 제안이 좋은 것 같아요. – Merus

0

음. 백그라운드에서 컨텐트를로드하기를 원할 경우 폼을로드 할 수있는 ListView를 채우는 스레드를 시도 할 수 있습니다.

Application.DoEvents()를 넣으면 일시 중지가 발생하지 않을 것이라고 생각합니다. 항목을로드 할 때 (양식에서 다시 그리기 및 이벤트 수신을 허용).

for (int ix=0; ix < 10000; ix ++) 
{ 
listView1.Items.Add(ix.ToString()); 
Application.DoEvents(); 
} 

나는 당신이 잘 할 것이다

+0

이것은 내가 이미하고 있던 일이었습니다. 슬프게도 작동하지 않았습니다. – Merus

관련 문제