2013-10-18 1 views
1

저는 약 100 개의 항목이있는 목록 상자가 있고 모든 항목을 선택/선택 취소하기위한 확인란은 WindowsForms에 있습니다.목록 상자 항목 범위 선택 향상

모든 항목을 선택하면 루프가 모든 항목을 선택할 때까지 프로그램이 느리게 돌아오고 모든 항목을 선택하는 데 4-5 초가 소요됩니다. 선택 항목은 실제로 매우 느립니다 (좋은 기계가 있고 단지 자신의 목록 상자 컨트롤이

If Not ListBox1.SelectedItems.Count = ListBox1.Items.Count Then 
    For item As Integer = 0 To Me.ListBox1.Items.Count - 1 
     ListBox1.SetSelected(item, True) 
    Next 
End If 

컨트롤에이 항목의 선택을 향상하기 위해 기술을 존재) 항목을 선택 느리다, 테스트 프로젝트에 테스트? 나는를 생성 할 수있는 옵션을 고려하지 않는

또한

...

나는 항목을 선택할 때 제어에 그리기 해제하려했지만 그것은 모든 항목을 선택 같은 4 ~ 5 시간을 낭비 새로운 스레드는 두 가지 이유로 컨트롤의 항목을 선택하는 것입니다. 1. 컨트롤을 업데이트하는 데 동일한 시간이 걸립니다. 2. 컨트롤을 만들 때 항목을 조금만 선택하면 매우 우아하지 않습니다. ..

+0

목록 상자 컨트롤에서 그림을 사용하지 않도록 설정하려고 했습니까? 실제로 시도한 코드 대신 실제로 시도한 코드를 넣는 것이 도움이됩니다. –

+0

제 질문에 지금 당장 사용하고있는 코드를 볼 수 있습니다. 제가 일하던 코드를 삭제 했으므로 시간을 테스트 한 것입니다. 왜냐하면 작동하지 않기 때문에 코드가 없지만 그냥 컨트롤 (그리기 paintng 이벤트를 비활성화)에 대한 그림을 비활성화하면 목록 상자의 느린 논리가 항목 선택을 가속화 할 수 있다고 생각했습니다. –

+0

이 목록 상자가 데이터에 바인딩되어 있습니까? 잠시 시간이 걸리는 클래스/속성에서 뭔가를하고 있습니까? 그렇다면 코드 속도를 높여야합니다. 만약 그렇지 않다면, 새 컴퓨터가 필요합니다. ** IBM 5150 **은 4-5 초가 걸릴 것이기 때문에 ** 필요합니다. – Steve

답변

1

이런 항목, 선택, 루프 주위 BeginUpdate()EndUpdate()를 사용하여 시도 :

0,123,748,824을

자세한 내용은 BeginUpdate()EndUpdate() 설명서를 참조하십시오.

+0

안녕하세요, 저는 아직 문제가 있습니다. beginupdate/endupdate는 목록 상자의 로직 속도를 높이려고 노력했지만 그 중 하나였습니다. –

0

모든 항목을 선택하거나 선택 취소 할 수있는 기본 제공 기능이 있습니다. 나는 그들이 꽤 빠르다 고 생각한다. 그래서 당신은 귀하의 이벤트 처리기에서 이것을 시도 할 수 ...

myListBox.SelectAll();
또는
myListBox.UnselectAll();