DataGridViewRowCollection.AddRange(DataGridViewRow[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컬렉션에 지정된 DataGridViewRow 개체를 추가합니다.
public:
virtual void AddRange(... cli::array <System::Windows::Forms::DataGridViewRow ^> ^ dataGridViewRows);
public virtual void AddRange (params System.Windows.Forms.DataGridViewRow[] dataGridViewRows);
abstract member AddRange : System.Windows.Forms.DataGridViewRow[] -> unit
override this.AddRange : System.Windows.Forms.DataGridViewRow[] -> unit
Public Overridable Sub AddRange (ParamArray dataGridViewRows As DataGridViewRow())
매개 변수
- dataGridViewRows
- DataGridViewRow[]
DataGridViewRow 에 추가되는 DataGridViewRowCollection개체의 배열입니다.
예외
dataGridViewRows
이(가) null
인 경우
dataGridViewRows
에 행이 하나만 있으며, 이 행에는 컨트롤에 있는 열보다 많은 셀이 포함되어 있습니다.
연결된 DataGridView 컨트롤이 일시적으로 새 행이 추가되지 않도록 하는 다음 작업 중 하나를 수행합니다.
컨트롤의 모든 셀을 선택합니다.
선택 영역 지우기.
또는
이 메서드는 다음 DataGridView 이벤트 중 하나의 처리기에서 호출됩니다.
또는
DataSource 의 DataGridView 속성이 null
이 아닙니다.
또는
dataGridViewRows
배열에 있는 하나 이상의 항목이 null
인 경우
또는
DataGridView 에 열이 없습니다.
또는
dataGridViewRows
배열에 있는 하나 이상의 행에 대해 DataGridView 속성 값이 null
이 아닌 경우
또는
dataGridViewRows
배열에 있는 하나 이상의 행에 대해 Selected 속성 값이 true
인 경우
또는
dataGridViewRows
배열에 있는 둘 이상의 행이 동일한 경우
또는
dataGridViewRows
배열에 있는 하나 이상의 행에 컨트롤의 해당 열 형식과 호환되지 않는 형식의 셀이 하나 이상 포함되어 있는 경우
또는
dataGridViewRows
배열에 있는 하나 이상의 행에 컨트롤의 열 수보다 많은 셀이 포함되어 있는 경우
또는
이 작업에서는 고정되지 않은 행 뒤에 고정된 행을 추가합니다.
예제
다음 코드 예제를 사용 AddRange 하는 방법에 설명 섹션에 표시 된 버그를 해결 하기 위해 새 레코드에 대 한 행을 선택 하는 경우 메서드입니다.
// Workaround for bug that prevents DataGridViewRowCollection.AddRange
// from working when the row for new records is selected.
private void AddRows(params DataGridViewRow[] rows)
{
InsertRows(dataGridView1.RowCount - 1, rows);
}
// Workaround for bug that prevents DataGridViewRowCollection.InsertRange
// from working when any rows before the insertion index are selected.
private void InsertRows(int index, params DataGridViewRow[] rows)
{
System.Collections.Generic.List<int> selectedIndexes =
new System.Collections.Generic.List<int>();
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
if (row.Index >= index)
{
selectedIndexes.Add(row.Index);
row.Selected = false;
}
}
dataGridView1.Rows.InsertRange(index, rows);
foreach (int selectedIndex in selectedIndexes)
{
dataGridView1.Rows[selectedIndex].Selected = true;
}
}
' Workaround for bug that prevents DataGridViewRowCollection.AddRange
' from working when the row for new records is selected.
Private Sub AddRows(ByVal ParamArray rows As DataGridViewRow())
InsertRows(dataGridView1.RowCount - 1, rows)
End Sub
' Workaround for bug that prevents DataGridViewRowCollection.InsertRange
' from working when any rows before the insertion index are selected.
Private Sub InsertRows(ByVal index As Integer, _
ByVal ParamArray rows As DataGridViewRow())
Dim selectedIndexes As New System.Collections.Generic.List(Of Integer)
For Each row As DataGridViewRow In dataGridView1.SelectedRows
If row.Index >= index Then
selectedIndexes.Add(row.Index)
row.Selected = False
End If
Next row
dataGridView1.Rows.InsertRange(index, rows)
For Each selectedIndex As Integer In selectedIndexes
dataGridView1.Rows(selectedIndex).Selected = True
Next selectedIndex
End Sub
설명
가능한 경우 메서드는 AddRange 공유 행을 에 DataGridViewRowCollection추가합니다. 그렇지 않으면 새 행이 공유되지 않습니다. 자세한 내용은 Windows Forms DataGridView 컨트롤의 크기를 조정하는 최선의 방법을 참조하세요.
컨트롤의 행은 새 행이 추가될 때 자동으로 정렬되지 않습니다. 새 행을 올바른 위치로 정렬하려면 이벤트 처리기에서 메서드를 DataGridView.RowsAdded 호출 DataGridView.Sort 합니다. 사용자가 셀을 DataGridView.Sort 수정할 때 이벤트 처리기에서 CellValueChanged 메서드를 호출하여 행을 정렬할 수도 있습니다.
중요
버그로 인해를 AddRange 메서드는 애플리케이션 중지 응답 경우를 확인 합니다 AllowUserToAddRows 속성이 true
새 레코드에 대 한 행을 선택 하 고 합니다. 이 버그를 해결하려면 이 메서드를 호출하기 전에 행 선택을 취소한 다음 행을 다시 선택해야 합니다. 자세한 내용은 이 항목의 코드 예제를 참조하세요.
적용 대상
추가 정보
.NET