DataGridViewRowCollection.AddRange(DataGridViewRow[]) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menambahkan objek yang ditentukan DataGridViewRow ke koleksi.
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())
Parameter
- dataGridViewRows
- DataGridViewRow[]
Array DataGridViewRow objek yang akan ditambahkan ke DataGridViewRowCollection.
Pengecualian
dataGridViewRows
adalah null
.
dataGridViewRows
hanya berisi satu baris, dan baris yang dikandungnya memiliki lebih banyak sel daripada kolom dalam kontrol.
Kontrol terkait DataGridView melakukan salah satu tindakan berikut yang untuk sementara mencegah baris baru ditambahkan:
Memilih semua sel dalam kontrol.
Menghapus pilihan.
-atau-
Metode ini dipanggil dari handler untuk salah satu peristiwa berikut DataGridView :
-atau-
Properti DataSource dari DataGridView bukan null
.
-atau-
Setidaknya satu entri dalam dataGridViewRows
array adalah null
.
-atau-
tidak DataGridView memiliki kolom.
-atau-
Setidaknya satu baris dalam dataGridViewRows
array memiliki DataGridView nilai properti yang bukan null
.
-atau-
Setidaknya satu baris dalam dataGridViewRows
array memiliki Selected nilai true
properti .
-atau-
Dua baris atau lebih dalam dataGridViewRows
array identik.
-atau-
Setidaknya satu baris dalam dataGridViewRows
array berisi satu atau beberapa sel jenis yang tidak kompatibel dengan jenis kolom terkait dalam kontrol.
-atau-
Setidaknya satu baris dalam dataGridViewRows
array berisi lebih banyak sel daripada kolom dalam kontrol.
-atau-
Operasi ini akan menambahkan baris beku setelah baris yang tidak dibekukan.
Contoh
Contoh kode berikut menunjukkan cara menggunakan AddRange metode ketika baris untuk rekaman baru dipilih untuk mengatasi bug yang ditunjukkan di bagian Keterangan.
// 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
Keterangan
Metode menambahkan AddRange baris bersama ke DataGridViewRowCollection, jika memungkinkan. Jika tidak, baris baru tidak dibagikan. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk Menskalakan Kontrol Formulir Windows DataGridView.
Baris dalam kontrol tidak diurutkan secara otomatis saat baris baru ditambahkan. Untuk mengurutkan baris baru ke posisi yang benar, panggil DataGridView.Sort metode dalam penanganan DataGridView.RowsAdded aktivitas. Anda mungkin juga ingin memanggil DataGridView.Sort metode dalam CellValueChanged penanganan aktivitas untuk mengurutkan baris saat pengguna memodifikasi sel.
Penting
Karena bug, AddRange metode akan membuat aplikasi Anda berhenti merespons jika AllowUserToAddRows properti adalah true
dan baris untuk rekaman baru dipilih. Untuk mengatasi bug ini, Anda harus membatalkan pemilihan baris sebelum memanggil metode ini, lalu memilih kembali baris. Untuk informasi selengkapnya, lihat contoh kode dalam topik ini.