아이디어는 다음과 같습니다. 사용자가 하나 이상의 셀을 선택한 다음 제거 버튼을 클릭하면 Datagridview가 선택한 셀의 전체 행을 제거합니다. 아무 것도 없으면 여러 개의 셀 행을 삭제하는 방법을 보여줄 때 내 마음이 날아갑니다. 선택한 행이나 단일 셀을 삭제하면 문제가 간단합니다. 그러나 여러 셀에 문제가선택한 셀의 행을 삭제합니다. windows 폼
일부 문제가 수도가 발생합니다 ...입니다 : 인덱스가 경계에서,
가의가있는 gridview 내용이 열있는 gridview의 데이터가 DB에서 아니라고 가정하자 ... 전체의 gridview를 삭제합니다.나는이 코드를 시도했다 :
while(dgv1.selectedCells.count>0){
dgv1.removeAt(dgv1.selectedCells[0].RowIndex);
}
그러나 이것은 전체 DataGridView를 삭제 gridview에 하나 개의 행을 제거 할 때, 그것은 첫 번째 셀 (첫번째 COL, 첫 번째 행) 선택을 얻을 수 있기 때문이다. 다음
나는이 시도 :
이List<int> rowToDelete = new List<int>();
foreach(DataGridViewCell cell in dgv1.selectedCells){
rowToDelete.add(cell.RowIndex);
}
다음 목록에서의 gridview 행을 삭제할 수 있지만이 같은 행을 인덱스를 발생할 수 있습니다 잘못된 행이 삭제 될 것을, 추가 할, 그리고 코드를 더 복잡하게 만들 수 있습니다 . 도와주세요.
편집 : yatrix 권장, 나는 (내가 그의 권고를 잘 찾은 것 같아)
for (int i = dataGridView1.SelectedCells.Count -1; i >=0; i--)
{
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedCells[i].RowIndex);
}
을하지만 Rows.Count에 비해 세포 이상을 선택하면 바인딩 예외 중 인덱스가 발생이 코드를 사용합니다. 또한 동일한 행에서 2 셀을 선택하면 잘못된 행이 삭제됩니다 (다음 행). 그리고 그것은 저의 주요 문제입니다.
Ps : Windows에서 여러 파일의 이름을 바꾸는 프로그램을 만들려고합니다.
고마워,이 하나 좋다! – Eddie