2009-04-20 9 views
3

지원하고있는 응용 프로그램에서 일부 동작을 파악하려고합니다. 코드 조각은 : 선택 모든 체크 박스를 클릭 할 때 기본적으로 그리드의 모든 행을 선택하려고.NET C# 응용 프로그램의 DataGridViewRow 성능이 느림

foreach (DataGridViewRow pGridRow in grdEmail.Rows) 
{ 
    pGridRow.Cells[0].Value = chkSelectAll.Checked; 
    pCount = pGridRow.Index + 1; 
} 

은 (확인란을 선택).

그리드가 몇 행 (100 개 정도)이면 아름답게 작동합니다. 그러나, 내가 약 5000 행을 가지고,이 일이 크롤 링합니다. pGridRow.Cells[0].Value = chkSelectAll.Checked 명령은 두 번째 정도 (Console.prints를 위아래로 둡니다) 소요됩니다.

어떤 문제라도 해결 될 수 있습니다.

+0

DataGridView에 몇 개의 열이 있습니까? 두 번째 또는 두 번째 셀 텍스트를 찾고 설정하는 데 오랜 시간이 걸릴 것 같습니다. –

답변

0

한 번에 5000 개의 행을 표시 할 수있는 요령은 무엇입니까?

페이지를 매길 수 없습니까?
체크 박스를 기본적으로 선택하여 보낼 수 없습니까?

+1

한 번에 5000 개의 행을 표시해야하는 이유는 많습니다. 하나를 위해 분류. 5000은 실제로 그렇게 많이 아닙니다. 한 번에 모든 데이터를 볼 수 없다면 당황한 사용자가 있습니다. –

0

셀 값을 직접 설정하는 대신 기본 데이터 소스 (있는 경우)를 직접 수정 해보십시오.

1

수천 개의 행을 동시에 표시하는 것은 낭비적이고 사용자가 필요로하는 데이터를 찾기가 매우 어렵습니다. 확실히 페이지 매김을 추천합니다. 사용자가 감사 할 것입니다. (그들은 특별히 바보 보이는, 한 번에 5000을 참조하도록 요청하지 않는 한.)

1

이 속성 설정을 시도해보십시오 보인다 때문에

grdEmail.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; 
grdEmail.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; 

을 그 DataGridView를가하려고하는이 두 가지 속성의 다른 값 모눈의 일부 확인란 만 선택하는 경우에도 행과 열의 크기를 조정하십시오.

관련 문제