DataGridView.RowsAdded Olay

Tanım

öğesine yeni bir satır eklendikten DataGridViewsonra gerçekleşir.

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

Olay Türü

Örnekler

Aşağıdaki kod örneği, bir sanal DataGridViewiçindeki satır sayısını artırmak için olayını işlerRowsAdded. İşleyicide satır sayısı kullanılır, böylece boş bir hücrenin CellValueNeeded ne zaman göstereceğini ve yeni bir satır için başlatılan bir hücrenin ne zaman göstereceğini bilir. Bu örnek, başvuru konusunda bulunan VirtualMode daha büyük bir örneğin bir parçasıdır.

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

Açıklamalar

Denetimdeki satırlar, yeni satırlar eklendiğinde otomatik olarak sıralanmaz. Yeni satırları doğru konumlarına sıralamak için bir olay işleyicisinde RowsAdded yöntemini çağırınSort.

Kullanıcı yeni kayıtlar için satırı kullanarak yeni bir satır eklediğinde, bu olayın işleyicisindeki değer yeni DataGridViewRowsAddedEventArgs.RowIndex kayıtlar için satırın yeni konumunun dizinine eşittir ve bu da yeni eklenen satırdan daha büyük bir değerdir. Ancak program aracılığıyla satır eklediğinizde, RowIndex değer eklenen ilk satırın dizinidir.

Sanal modda, bu olay olaydan önce CellValuePushed gerçekleşir ve veri deponuzda daha sonra olay işleyicisinde CellValuePushed doldurabileceğiniz yeni kayıtlar oluşturmak için kullanılabilir.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.