DataGridViewRowCollection.InsertRange(Int32, DataGridViewRow[]) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden de DataGridViewRow objecten op de opgegeven positie in de verzameling ingevoegd.
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())
Parameters
- rowIndex
- Int32
De positie waarop de rijen moeten worden ingevoegd.
- dataGridViewRows
- DataGridViewRow[]
Een matrix met DataGridViewRow objecten die moeten worden toegevoegd aan de DataGridViewRowCollection.
Uitzonderingen
dataGridViewRows is null.
rowIndex is kleiner dan nul of groter dan het aantal rijen in de verzameling.
dataGridViewRows bevat slechts één rij en de rij bevat meer cellen dan er kolommen in het besturingselement zijn.
Het bijbehorende DataGridView besturingselement voert een van de volgende acties uit die tijdelijk verhinderen dat nieuwe rijen worden toegevoegd:
Alle cellen in het besturingselement selecteren.
De selectie wissen.
– of –
Deze methode wordt aangeroepen vanuit een handler voor een van de volgende DataGridView gebeurtenissen:
– of –
rowIndex is gelijk aan het aantal rijen in de verzameling en AllowUserToAddRows is true.
– of –
De DataSource eigenschap van het DataGridView is niet null.
– of –
Ten minste één vermelding in de dataGridViewRows matrix is null.
– of –
De DataGridView kolom heeft geen kolommen.
– of –
Ten minste één rij in de dataGridViewRows matrix heeft een DataGridView eigenschapswaarde die niet nullis.
– of –
Ten minste één rij in de dataGridViewRows matrix heeft een Selected eigenschapswaarde van true.
– of –
Twee of meer rijen in de dataGridViewRows matrix zijn identiek.
– of –
Ten minste één rij in de dataGridViewRows matrix bevat een of meer cellen van een type dat niet compatibel is met het type van de corresponderende kolom in het besturingselement.
– of –
Ten minste één rij in de dataGridViewRows matrix bevat meer cellen dan er kolommen in het besturingselement zijn.
– of –
Met deze bewerking worden geblokkeerde rijen ingevoegd nadat rijen zijn uitgeschakeld of rijen die niet zijn bevroren voor geblokkeerde rijen.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de InsertRange methode gebruikt om rijen in te voegen vóór geselecteerde rijen om de fout te omzeilen die wordt aangegeven in de sectie Opmerkingen.
// 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
Opmerkingen
Met de InsertRange methode worden gedeelde rijen toegevoegd aan de DataGridViewRowCollection, indien mogelijk. Anders worden de nieuwe rijen niet gedeeld. Zie Best practices voor het schalen van het Windows Forms DataGridView-besturingselement voor meer informatie.
Rijen in het besturingselement worden niet automatisch gesorteerd wanneer er nieuwe rijen worden toegevoegd. Als u nieuwe rijen in de juiste positie wilt sorteren, roept u de DataGridView.Sort methode aan in een DataGridView.RowsAdded gebeurtenis-handler. U kunt ook de DataGridView.Sort methode aanroepen in een CellValueChanged gebeurtenishandler om de rijen te sorteren wanneer de gebruiker een cel wijzigt.
Important
Vanwege een fout reageert uw InsertRange toepassing niet meer als er rijen met een index groter zijn dan rowIndex geselecteerd. Als u deze fout wilt omzeilen, moet u de selectie van deze rijen annuleren voordat u deze methode aanroept en de rijen daarna opnieuw selecteren. Zie het codevoorbeeld in dit onderwerp voor meer informatie.