Esta documentación está archivada y no tiene mantenimiento.

DataGridView.RowsAdded (Evento)

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

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public event DataGridViewRowsAddedEventHandler RowsAdded
/** @event */
public void add_RowsAdded (DataGridViewRowsAddedEventHandler value)

/** @event */
public void remove_RowsAdded (DataGridViewRowsAddedEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

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

Cuando el usuario agrega una nueva fila utilizando la fila para nuevos registros, el valor de DataGridViewRowsAddedEventArgs.RowIndex en el controlador para este evento es igual al índice de la nueva ubicación de la fila para nuevos registros, una unidad mayor que la fila recién agregada. Sin embargo, si agrega filas mediante programación, el valor de RowIndex será el índice de la primera fila agregada.

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

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

El ejemplo de código siguiente controla el evento RowsAdded para incrementar el número de filas de un control DataGridView virtual. El número de filas se utiliza en el controlador CellValueNeeded para saber cuándo debe mostrar una celda vacía o una celda inicializada para una nueva fila. Este ejemplo forma parte de un ejemplo más extenso que está disponible en el tema referente a VirtualMode.

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>();

private boolean newRowNeeded;

private void dataGridView1_NewRowNeeded(Object sender,
    DataGridViewRowEventArgs e)
{
    newRowNeeded = true;
} //dataGridView1_NewRowNeeded

private final int INITIALSIZE = 5000000;
private int numberOfRows = INITIALSIZE;

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

#region "data store maintance"
private final int INITIALVALUE = -1;

private void dataGridView1_CellValueNeeded(Object sender,
    DataGridViewCellValueEventArgs e)
{
    if (store.ContainsKey(e.get_RowIndex())) {
        // Use the store if the e value has been modified 
        // and stored.            
        e.set_Value((Int32)store.get_Item(e.get_RowIndex()));
    }
    else {
        if (newRowNeeded && e.get_RowIndex() == numberOfRows) {
            if (dataGridView1.get_IsCurrentCellInEditMode()) {
                e.set_Value((Int32)INITIALVALUE);
            }
            else {
                // Show a blank e if the cursor is just loitering
                // over(the)
                // last row.
                e.set_Value("");
            }
        }
        else {
            e.set_Value((Int32)e.get_RowIndex());
        }
    }
} //dataGridView1_CellValueNeeded

private void dataGridView1_CellValuePushed(Object sender,
    DataGridViewCellValueEventArgs e)
{
    store.Add(e.get_RowIndex(), Int32.Parse(e.get_Value().ToString()));
} //dataGridView1_CellValuePushed
#endregion

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

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: