DataGridView.RowsAdded Evento

Definición

Se produce después de agregar una nueva fila al control DataGridView.

C#
public event System.Windows.Forms.DataGridViewRowsAddedEventHandler RowsAdded;
C#
public event System.Windows.Forms.DataGridViewRowsAddedEventHandler? RowsAdded;

Tipo de evento

Ejemplos

En el ejemplo de código siguiente se controla el RowsAdded evento para incrementar el número de filas de un virtual DataGridView. El número de filas se usa en el CellValueNeeded controlador para que sepa cuándo mostrar una celda en blanco frente a una celda inicializada para una nueva fila. Este ejemplo forma parte de un ejemplo más grande disponible en el VirtualMode tema de referencia.

C#
bool newRowNeeded;
private void dataGridView1_NewRowNeeded(object sender,
    DataGridViewRowEventArgs e)
{
    newRowNeeded = true;
}

const int initialSize = 5000000;
int numberOfRows = initialSize;

private void dataGridView1_RowsAdded(object sender,
     DataGridViewRowsAddedEventArgs e)
{
    if (newRowNeeded)
    {
        newRowNeeded = false;
        numberOfRows = numberOfRows + 1;
    }
}

#region "data store maintance"
const int initialValue = -1;

private void dataGridView1_CellValueNeeded(object sender,
    DataGridViewCellValueEventArgs e)
{
    if (store.ContainsKey(e.RowIndex))
    {
        // Use the store if the e value has been modified 
        // and stored.            
        e.Value = store[e.RowIndex];
    }
    else if (newRowNeeded && e.RowIndex == numberOfRows)
    {
        if (dataGridView1.IsCurrentCellInEditMode)
        {
            e.Value = initialValue;
        }
        else
        {
            // Show a blank value if the cursor is just resting
            // on the last row.
            e.Value = String.Empty;
        }
    }
    else
    {
        e.Value = e.RowIndex;
    }
}

private void dataGridView1_CellValuePushed(object sender,
    DataGridViewCellValueEventArgs e)
{
    store.Add(e.RowIndex, int.Parse(e.Value.ToString()));
}
#endregion

private Dictionary<int, int> store = new Dictionary<int, int>();

Comentarios

Las filas del control no se ordenan automáticamente cuando se agregan nuevas filas. Para ordenar nuevas filas en su posición correcta, llame al Sort método en un RowsAdded controlador de eventos.

Cuando el usuario agrega una nueva fila utilizando la fila para los nuevos registros, el DataGridViewRowsAddedEventArgs.RowIndex valor del controlador para este evento es igual al índice de la nueva ubicación de la fila para los nuevos registros, que es uno mayor que la fila que acaba de agregar. Sin embargo, al agregar filas mediante programación, el RowIndex valor es el índice de la primera fila agregada.

En modo virtual, este evento se produce antes del CellValuePushed evento y se puede usar para crear nuevos registros en el almacén de datos que puede rellenar en el CellValuePushed controlador de eventos.

Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.

Se aplica a

Producto Versiones
.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, 10

Consulte también