2012-06-27 6 views
1

나는 C#을 사용하여 WinApp 프로젝트 작업을하고있다. DataGridview를 사용하고 있는데, 셀 내부에 쓰려고 할 때 새로운 행이 자동으로 만들어집니다. 그래서 내가 2 행을 사용하면 자동으로 3을 만들고 콜렉션에 포함됩니다.새 행을 제외하고 컬렉션의 모든 행에 반복합니다.

 foreach (DataGridViewRow row in grdCrew.Rows) 
     { 

     } 

따라서이 문장은 2 번 insted 중 3 번 실행됩니다. 이 문제를 피하고 진술 2를 어떻게 실행할 수 있습니까?

foreach (DataGridViewRow row in grdCrew.Rows.ToArray()) 
{ 

} 
+0

fasle''로 [AllowUserToAddRows] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.allowusertoaddrows.aspx) 속성을 설정하고 다시 시도하십시오. – Schaliasos

+0

그는 여전히 사용자가 행을 추가 할 수 있기를 원한다고 생각합니다. 빈 행을 계산하기를 원하지 않습니다. –

+0

나는 그가 새로운 행에 데이터를 추가 할 때마다 그 행이 사용자를 위해 생성되기 때문에 이것이 문제라고 생각한다. 어쨌든, 내 의견으로는, 사용자가 행을 추가하게하는 아이디어는 오류가 발생하기 쉽습니다. – Schaliasos

답변

2

한 가지 방법은 컬렉션의 복사본을 만드는 것입니다.

foreach (DataGridViewRow row in grdCrew.Rows) 
{ 
    if (!row.IsNewRow) 
    { 

    } 
} 
4

DataGridViewRow의 그것 DataGridView 삽입 년대 빈 행의 경우는 true입니다 IsNewRow 속성이 있습니다 :

관련 문제