DataGridViewRowCollection.AddRange(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 voegt u de opgegeven DataGridViewRow objecten toe aan de verzameling.
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())
Parameters
- dataGridViewRows
- DataGridViewRow[]
Een matrix met DataGridViewRow objecten die moeten worden toegevoegd aan de DataGridViewRowCollection.
Uitzonderingen
dataGridViewRows is null.
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 –
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 toegevoegd nadat de rijen zijn uitgeschakeld.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de AddRange methode gebruikt wanneer de rij voor nieuwe records is geselecteerd om de fout te omzeilen die wordt aangegeven in de sectie Opmerkingen.
// 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
Opmerkingen
Met de AddRange 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
Als gevolg van een fout reageert uw AddRange toepassing niet meer als de AllowUserToAddRows eigenschap is true en de rij voor nieuwe records is geselecteerd. Als u deze fout wilt omzeilen, moet u de selectie van de rij annuleren voordat u deze methode aanroept en vervolgens de rij opnieuw selecteren. Zie het codevoorbeeld in dit onderwerp voor meer informatie.