DataGridView.NewRowNeeded Evento

Definição

Ocorre quando a propriedade VirtualMode do DataGridView é true e o usuário navega para a nova linha na parte inferior da DataGridView.

public event System.Windows.Forms.DataGridViewRowEventHandler NewRowNeeded;
public event System.Windows.Forms.DataGridViewRowEventHandler? NewRowNeeded;

Tipo de evento

Exemplos

O exemplo de código a seguir usa o NewRowNeeded evento para acompanhar quando uma nova linha está sendo adicionada, de modo que a CellValueNeeded lógica no manipulador de eventos pode inicializar a célula de uma nova linha para um valor inicial. Este exemplo faz parte de um exemplo maior disponível no VirtualMode tópico de referência.

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

Comentários

Quando o DataGridView está no modo virtual, esse evento permite que uma nova entrada seja criada no armazenamento de dados para a nova linha e também permite que a linha seja preenchida com valores padrão.

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e levantando eventos.

Aplica-se a

Produto Versões
.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

Confira também