DataGridViewRowCollection.AddRange(DataGridViewRow[]) Methode
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt der Auflistung die angegebenen DataGridViewRow-Objekte hinzu.
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[]
Ein Array von DataGridViewRow-Objekten, die DataGridViewRowCollection hinzugefügt werden sollen.
dataGridViewRows
ist null
.
dataGridViewRows
enthält nur eine Zeile, und die enthaltene Zeile verfügt über mehr Zellen, als Spalten im Steuerelement vorhanden sind.
Das zugeordnete DataGridView-Steuerelement führt eine der folgenden Aktionen aus, wodurch vorübergehend keine neuen Zeilen hinzugefügt werden können:
Auswählen aller Zellen im Steuerelement.
Die Auswahl wird gelöscht.
- oder -
Diese Methode wird von einem Handler für eines der folgenden DataGridView-Ereignisse aufgerufen:
- oder -
Die DataSource-Eigenschaft der DataGridView ist nicht null
.
- oder -
Mindestens ein Eintrag im dataGridViewRows
-Array ist null
.
- oder -
Die DataGridView hat keine Spalten.
- oder -
Mindestens eine Zeile im dataGridViewRows
-Array verfügt über einen DataGridView-Eigenschaftswert, der nicht null
ist.
- oder -
Mindestens eine Zeile im dataGridViewRows
-Array verfügt über einen Selected-Eigenschaftswert, der true
ist.
- oder -
Mindestens zwei Zeilen im dataGridViewRows
-Array sind identisch.
- oder -
Mindestens eine Zeile im dataGridViewRows
-Array enthält mindestens eine Zelle eines Typs, der mit dem Typ der entsprechenden Spalte im Steuerelement nicht kompatibel ist.
- oder -
Mindestens eine Zeile im dataGridViewRows
-Array enthält mehr Zellen als Spalten im Steuerelement vorhanden sind.
- oder -
Dieser Vorgang würde fixierte Zeilen hinter nicht fixierten Zeilen hinzufügen.
Im folgenden Codebeispiel wird veranschaulicht, wie Sie die AddRange -Methode verwenden, wenn die Zeile für neue Datensätze ausgewählt ist, um den im Abschnitt Hinweise angegebenen Fehler zu umgehen.
// 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
Die AddRange -Methode fügt nach Möglichkeit freigegebene DataGridViewRowCollectionZeilen hinzu. Andernfalls werden die neuen Zeilen aufgehoben. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.
Zeilen im Steuerelement werden nicht automatisch sortiert, wenn neue Zeilen hinzugefügt werden. Um neue Zeilen an die richtige Position zu sortieren, rufen Sie die DataGridView.Sort -Methode in einem Ereignishandler auf DataGridView.RowsAdded . Sie können auch die DataGridView.Sort Methode in einem CellValueChanged Ereignishandler aufrufen, um die Zeilen zu sortieren, wenn der Benutzer eine Zelle ändert.
Wichtig
Aufgrund eines Fehlers führt die Methode dazu AddRange , dass Ihre Anwendung nicht mehr reagiert, wenn die AllowUserToAddRows Eigenschaft ist true
und die Zeile für neue Datensätze ausgewählt ist. Um diesen Fehler zu umgehen, müssen Sie die Auswahl der Zeile abbrechen, bevor Sie diese Methode aufrufen, und dann die Zeile erneut auswählen. Weitere Informationen finden Sie im Codebeispiel in diesem Thema.
Produkt | Versionen |
---|---|
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: