DataGridViewRowCollection.InsertRange(Int32, 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.
Sisipkan objek ke DataGridViewRow dalam koleksi pada posisi yang ditentukan.
public:
virtual void InsertRange(int rowIndex, ... cli::array <System::Windows::Forms::DataGridViewRow ^> ^ dataGridViewRows);
public virtual void InsertRange (int rowIndex, params System.Windows.Forms.DataGridViewRow[] dataGridViewRows);
abstract member InsertRange : int * System.Windows.Forms.DataGridViewRow[] -> unit
override this.InsertRange : int * System.Windows.Forms.DataGridViewRow[] -> unit
Public Overridable Sub InsertRange (rowIndex As Integer, ParamArray dataGridViewRows As DataGridViewRow())
Parameter
- rowIndex
- Int32
Posisi untuk menyisipkan baris.
- dataGridViewRows
- DataGridViewRow[]
Array DataGridViewRow objek untuk ditambahkan ke DataGridViewRowCollection.
Pengecualian
dataGridViewRows
adalah null
.
rowIndex
kurang dari nol atau lebih besar dari jumlah baris dalam koleksi.
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-
rowIndex
sama dengan jumlah baris dalam koleksi dan AllowUserToAddRows adalah true
.
-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 properti .true
-atau-
Dua baris atau lebih dalam dataGridViewRows
array identik.
-atau-
Setidaknya satu baris dalam dataGridViewRows
array berisi satu atau beberapa sel dengan tipe 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 menyisipkan baris beku setelah baris yang tidak dibekukan atau baris yang tidak dibekukan sebelum baris beku.
Contoh
Contoh kode berikut menunjukkan cara menggunakan InsertRange metode untuk menyisipkan baris sebelum baris yang dipilih untuk mengatasi bug yang ditunjukkan di bagian Keterangan.
// 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.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 InsertRange 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, metode ini InsertRange akan membuat aplikasi Anda berhenti merespons jika ada baris dengan indeks yang lebih besar dari rowIndex
yang dipilih. Untuk mengatasi bug ini, Anda harus membatalkan pemilihan baris ini sebelum memanggil metode ini, dan memilih kembali baris setelahnya. Untuk informasi selengkapnya, lihat contoh kode dalam topik ini.