DataGridView.NewRowNeeded Olay

Tanım

öğesinin VirtualModeDataGridView özelliği olduğunda true ve kullanıcı öğesinin en altındaki DataGridViewyeni satıra gittiğinde gerçekleşir.

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

Olay Türü

Örnekler

Aşağıdaki kod örneği, yeni satırın NewRowNeeded ne zaman eklendiğini izlemek için olayını kullanır, böylece olay işleyicisindeki mantık yeni satırın CellValueNeeded hücresini ilk değere başlatabilir. Bu örnek, başvuru konusunda bulunan VirtualMode daha büyük bir örneğin 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

DataGridView sanal modda olduğunda, bu olay yeni satır için veri deposunda yeni bir giriş oluşturulmasına izin verir ve satırın varsayılan değerlerle doldurulmasına da olanak tanır.

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.