DataGridViewRowCollection.AddRange(DataGridViewRow[]) DataGridViewRowCollection.AddRange(DataGridViewRow[]) DataGridViewRowCollection.AddRange(DataGridViewRow[]) DataGridViewRowCollection.AddRange(DataGridViewRow[]) Method

Definición

Agrega los objetos DataGridViewRow especificados a la colección.Adds the specified DataGridViewRow objects to the 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())

Parámetros

dataGridViewRows
DataGridViewRow[]

Matriz de objetos DataGridViewRow que se van a agregar a la colección DataGridViewRowCollection.An array of DataGridViewRow objects to be added to the DataGridViewRowCollection.

Excepciones

dataGridViewRows es null.dataGridViewRows is null.

dataGridViewRows solo contiene una fila y la fila que contiene tiene más celdas que las columnas existentes en el control.dataGridViewRows contains only one row, and the row it contains has more cells than there are columns in the control.

El control DataGridView asociado está realizando una de las acciones siguientes que impide temporalmente que se agreguen nuevas filas:The associated DataGridView control is performing one of the following actions that temporarily prevents new rows from being added: - Seleccionar todas las celdas del control.- Selecting all cells in the control.

- Borrar la selección.- Clearing the selection.

O bien-or- Se llama a este método desde un controlador para uno de los siguientes eventos DataGridView :This method is being called from a handler for one of the following DataGridView events:

o bien-or- La propiedad DataSource del objeto DataGridView no es null.The DataSource property of the DataGridView is not null.

O bien-or- Al menos una de las entradas de la matriz dataGridViewRows es null.At least one entry in the dataGridViewRows array is null.

O bien-or- DataGridView no tiene columnas.The DataGridView has no columns.

O bien-or- Al menos una fila de la matriz dataGridViewRows tiene un valor de la propiedad DataGridView que no es null.At least one row in the dataGridViewRows array has a DataGridView property value that is not null.

O bien-or- Al menos una fila de la matriz dataGridViewRows tiene un valor de la propiedad Selected de true.At least one row in the dataGridViewRows array has a Selected property value of true.

O bien-or- Dos o más filas de la matriz dataGridViewRows son idénticas.Two or more rows in the dataGridViewRows array are identical.

O bien-or- Al menos una fila de la matriz dataGridViewRows contiene una o más celdas de un tipo que es incompatible con el tipo de la columna correspondiente del control.At least one row in the dataGridViewRows array contains one or more cells of a type that is incompatible with the type of the corresponding column in the control.

o bien-or- Al menos una fila de la matriz dataGridViewRows contiene más celdas que columnas hay en el control.At least one row in the dataGridViewRows array contains more cells than there are columns in the control.

O bien-or- Esta operación agregaría filas inmovilizadas después de las filas que no están inmovilizadas.This operation would add frozen rows after unfrozen rows.

Ejemplos

En el ejemplo de código siguiente se muestra cómo AddRange utilizar el método cuando se selecciona la fila para los nuevos registros para solucionar el error indicado en la sección Comentarios.The following code example demonstrates how to use the AddRange method when the row for new records is selected to work around the bug indicated in the Remarks section.

// 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

Comentarios

El AddRange método agrega filas compartidas DataGridViewRowCollectional, si es posible.The AddRange method adds shared rows to the DataGridViewRowCollection, if possible. De lo contrario, las nuevas filas no estarán compartidas.Otherwise, the new rows are unshared. Para obtener más información, consulte Procedimientos recomendados para ajustar la escala del control DataGridView en Windows Forms.For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

Las filas del control no se ordenan automáticamente cuando se agregan nuevas filas.Rows in the control are not automatically sorted when new rows are added. Para ordenar las nuevas filas en su posición correcta, llame DataGridView.Sort al método en DataGridView.RowsAdded un controlador de eventos.To sort new rows into their correct position, call the DataGridView.Sort method in a DataGridView.RowsAdded event handler. También puede llamar DataGridView.Sort al método en un CellValueChanged controlador de eventos para ordenar las filas cuando el usuario modifica una celda.You might also want to call the DataGridView.Sort method in a CellValueChanged event handler to sort the rows when the user modifies a cell.

Importante

Debido a un error, el AddRange método hará que la aplicación deje de responder si AllowUserToAddRows la propiedad true es y se selecciona la fila para los nuevos registros.Due to a bug, the AddRange method will make your application stop responding if the AllowUserToAddRows property is true and the row for new records is selected. Para evitar este error, debe cancelar la selección de la fila antes de llamar a este método y, a continuación, volver a seleccionar la fila.To work around this bug, you must cancel the selection of the row before calling this method, and then reselect the row. Para obtener más información, vea el ejemplo de código de este tema.For more information, see the code example in this topic.

Se aplica a

Consulte también: