DataGridView.RowsAdded 事件

定义

在向 DataGridView 中添加新行之后发生。

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

事件类型

示例

下面的代码示例处理 RowsAdded 事件以增加虚拟 DataGridView中的行数。 处理程序中使用 CellValueNeeded 行数,以便它知道何时显示新行的空白单元格和初始化单元格。 此示例是参考主题中提供的更大示例的 VirtualMode 一部分。

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

注解

添加新行时,控件中的行不会自动排序。 若要将新行排序到正确的位置,请在事件处理程序中RowsAdded调用 Sort 方法。

当用户使用新记录的行添加新行时, DataGridViewRowsAddedEventArgs.RowIndex 此事件的处理程序中的值等于新记录行的新位置的索引,该索引比刚添加的行大一个。 但是,当以编程方式添加行时, RowIndex 该值是添加的第一行的索引。

在虚拟模式下,此事件发生在 CellValuePushed 事件之前,可用于在数据存储区中创建新记录,然后可以在事件处理程序中 CellValuePushed 填充这些记录。

有关如何处理事件的详细信息,请参阅 处理和引发事件

适用于

产品 版本
.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

另请参阅