DataGridView.RowsAdded Evento

Definizione

Si verifica dopo che una nuova riga viene aggiunta a DataGridView.

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

Tipo evento

Esempio

Nell'esempio di codice seguente viene gestito l'evento RowsAdded per incrementare il numero di righe in un oggetto virtuale DataGridView. Il numero di righe viene usato nel CellValueNeeded gestore in modo da sapere quando visualizzare una cella vuota rispetto a una cella inizializzata per una nuova riga. Questo esempio fa parte di un esempio più ampio disponibile nell'argomento VirtualMode di riferimento.

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

Commenti

Le righe nel controllo non vengono ordinate automaticamente quando vengono aggiunte nuove righe. Per ordinare le nuove righe nella posizione corretta, chiamare il Sort metodo in un RowsAdded gestore eventi.

Quando l'utente aggiunge una nuova riga utilizzando la riga per i nuovi record, il DataGridViewRowsAddedEventArgs.RowIndex valore nel gestore per questo evento è uguale all'indice della nuova posizione della riga per i nuovi record, ovvero uno maggiore della riga appena aggiunta. Quando si aggiungono righe a livello di codice, tuttavia, il RowIndex valore è l'indice della prima riga aggiunta.

In modalità virtuale, questo evento si verifica prima dell'evento e può essere usato per creare nuovi record nell'archivio CellValuePushedCellValuePushed dati che è quindi possibile popolare nel gestore eventi.

Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.

Si applica a

Prodotto Versioni
.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

Vedi anche