DataGridViewRowCollection.AddRange(DataGridViewRow[]) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ajoute les objets DataGridViewRow spécifiés à la collection.
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())
Paramètres
- dataGridViewRows
- DataGridViewRow[]
Tableau d’objets DataGridViewRow à ajouter à DataGridViewRowCollection.
Exceptions
dataGridViewRows
a la valeur null
.
dataGridViewRows
contient une seule ligne et la ligne qu’il contient possède plus de cellules qu’il n’y a de colonnes dans le contrôle.
Le contrôle DataGridView associé exécute l’une des opérations suivantes qui empêche temporairement l’ajout de nouvelles lignes :
Sélection de toutes les cellules du contrôle.
Effacement de la sélection.
- ou -
Cette méthode est appelée à partir d’un gestionnaire d’un des événements DataGridView suivants :
- ou -
La propriété DataSource de DataGridView n’est pas null
.
- ou -
Au moins une entrée du tableau dataGridViewRows
est null
.
- ou -
DataGridView ne possède aucune colonne.
- ou -
Au moins une ligne du tableau dataGridViewRows
a une valeur de propriété DataGridView qui n’est pas null
.
- ou -
Au moins une ligne du tableau dataGridViewRows
a une valeur de propriété Selected de true
.
- ou -
Plusieurs lignes du tableau dataGridViewRows
sont identiques.
- ou -
Au moins une ligne du tableau dataGridViewRows
contient une ou plusieurs cellules dont le type n’est pas compatible avec le type de la colonne correspondante dans le contrôle.
- ou -
Au moins une ligne du tableau dataGridViewRows
contient plus de cellules qu’il n’y a de colonnes dans le contrôle.
- ou -
Cette opération ajoute des lignes figées après des lignes non figées.
Exemples
L’exemple de code suivant montre comment utiliser la AddRange méthode lorsque la ligne pour les nouveaux enregistrements est sélectionnée pour contourner le bogue indiqué dans la section Notes.
// 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
Remarques
La AddRange méthode ajoute des lignes partagées au DataGridViewRowCollection, si possible. Sinon, les nouvelles lignes ne sont pas partagée. Pour plus d'informations, consultez Meilleures pratiques pour la mise à l'échelle du contrôle DataGridView Windows Forms.
Les lignes du contrôle ne sont pas automatiquement triées lorsque de nouvelles lignes sont ajoutées. Pour trier les nouvelles lignes dans leur position correcte, appelez la DataGridView.Sort méthode dans un gestionnaire d’événements DataGridView.RowsAdded . Vous pouvez également appeler la DataGridView.Sort méthode dans un gestionnaire d’événements CellValueChanged pour trier les lignes lorsque l’utilisateur modifie une cellule.
Important
En raison d’un bogue, la AddRange méthode empêche votre application de répondre si la AllowUserToAddRows propriété est true
et que la ligne pour les nouveaux enregistrements est sélectionnée. Pour contourner ce bogue, vous devez annuler la sélection de la ligne avant d’appeler cette méthode, puis resélectionner la ligne. Pour plus d’informations, consultez l’exemple de code de cette rubrique.