DataGridViewRowsAddedEventArgs DataGridViewRowsAddedEventArgs DataGridViewRowsAddedEventArgs DataGridViewRowsAddedEventArgs Class

定义

RowsAdded 事件提供数据。Provides data for the RowsAdded event.

public ref class DataGridViewRowsAddedEventArgs : EventArgs
public class DataGridViewRowsAddedEventArgs : EventArgs
type DataGridViewRowsAddedEventArgs = class
    inherit EventArgs
Public Class DataGridViewRowsAddedEventArgs
Inherits EventArgs
继承
DataGridViewRowsAddedEventArgsDataGridViewRowsAddedEventArgsDataGridViewRowsAddedEventArgsDataGridViewRowsAddedEventArgs

示例

下面的代码示例处理RowsAdded事件以便递增虚拟DataGridView中的行数。The following code example handles the RowsAdded event to increment the number of rows in a virtual DataGridView. CellValueNeeded处理程序中使用的行数, 因此它知道何时为新行显示空白单元格和初始化的单元格。The number of rows is used in the CellValueNeeded handler so it knows when to show a blank cell versus an initialized cell for a new row. 此示例是VirtualMode参考主题中提供的一个更大示例的一部分。This example is part of a larger example available in the VirtualMode reference topic.

    void VirtualConnector::dataGridView1_NewRowNeeded
        (Object^ sender, DataGridViewRowEventArgs^ e)
    {
        newRowNeeded = true;
    }

    void VirtualConnector::dataGridView1_RowsAdded
        (Object^ sender, DataGridViewRowsAddedEventArgs^ e)
    {
        if (newRowNeeded)
        {
            newRowNeeded = false;
            numberOfRows = numberOfRows + 1;
        }
    }

#pragma region Data store maintance

    void VirtualConnector::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 = gcnew Int32(store->default[e->RowIndex]); 
        }
        else if (newRowNeeded && e->RowIndex == numberOfRows)
        {
            if (dataGridView1->IsCurrentCellInEditMode)
            {
                e->Value = initialValue;
            }
            else
            {
                // Show a blank e if the cursor is just loitering
                // over(the) last row.
                e->Value = String::Empty;
            }
        }
        else
        {
            e->Value = e->RowIndex;
        }
    }

    void VirtualConnector::dataGridView1_CellValuePushed
        (Object^ sender, DataGridViewCellValueEventArgs^ e)
    {
        String^ value = e->Value->ToString();
        store[e->RowIndex] = Int32::Parse(value, 
            CultureInfo::CurrentCulture);
    }
#pragma endregion
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>();
    Dim newRowNeeded As Boolean

    Private Sub dataGridView1_NewRowNeeded(ByVal sender As Object, _
        ByVal e As DataGridViewRowEventArgs) _
        Handles dataGridView1.NewRowNeeded

        newRowNeeded = True
    End Sub

    Const initialSize As Integer = 5000000
    Dim numberOfRows As Integer = initialSize

    Private Sub dataGridView1_RowsAdded(ByVal sender As Object, _
        ByVal e As DataGridViewRowsAddedEventArgs) _
        Handles dataGridView1.RowsAdded

        If newRowNeeded Then
            newRowNeeded = False
            numberOfRows = numberOfRows + 1
        End If
    End Sub

#Region "data store maintance"
    Const initialValue As Integer = -1

    Private Sub dataGridView1_CellValueNeeded(ByVal sender As Object, _
        ByVal e As DataGridViewCellValueEventArgs) _
        Handles dataGridView1.CellValueNeeded

        If store.ContainsKey(e.RowIndex) Then
            ' Use the store if the e value has been modified 
            ' and stored.
            e.Value = store(e.RowIndex)
        ElseIf newRowNeeded AndAlso e.RowIndex = numberOfRows Then
            If dataGridView1.IsCurrentCellInEditMode Then
                e.Value = initialValue
            Else
                ' Show a blank value if the cursor is just resting
                ' on the last row.
                e.Value = String.Empty
            End If
        Else
            e.Value = e.RowIndex
        End If
    End Sub

    Private Sub dataGridView1_CellValuePushed(ByVal sender As Object, _
        ByVal e As DataGridViewCellValueEventArgs) _
        Handles dataGridView1.CellValuePushed

        store.Add(e.RowIndex, CInt(e.Value))

    End Sub
#End Region

    Dim store As System.Collections.Generic.Dictionary(Of Integer, Integer) = _
        New Dictionary(Of Integer, Integer)

注解

RowsAdded行添加DataGridView到控件时发生此事件。The RowsAdded event occurs when rows are added to a DataGridView control. 当用户使用新记录的行添加新行时, 此事件的RowIndex处理程序中的值等于新记录行的新位置的索引, 该索引大于刚添加的行。When the user adds a new row using the row for new records, the RowIndex value in the handler for this event is equal to the index of the new location of the row for new records, which is one greater than the row just added. 但是, 以编程方式添加行时, RowIndex值是添加的第一行的索引。When you add rows programmatically, however, the RowIndex value is the index of the first row added.

有关如何处理事件的详细信息, 请参阅处理和引发事件For more information about how to handle events, see Handling and Raising Events.

构造函数

DataGridViewRowsAddedEventArgs(Int32, Int32) DataGridViewRowsAddedEventArgs(Int32, Int32) DataGridViewRowsAddedEventArgs(Int32, Int32) DataGridViewRowsAddedEventArgs(Int32, Int32)

初始化 DataGridViewRowsAddedEventArgs 类的新实例。Initializes a new instance of the DataGridViewRowsAddedEventArgs class.

属性

RowCount RowCount RowCount RowCount

获取已添加的行数。Gets the number of rows that have been added.

RowIndex RowIndex RowIndex RowIndex

获取所添加的第一行的索引。Gets the index of the first added row.

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

获取当前实例的 TypeGets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

返回表示当前对象的字符串。Returns a string that represents the current object.

(Inherited from Object)

适用于

另请参阅