DataGridView.NewRowNeeded イベント

定義

VirtualModeDataGridView プロパティが true で、ユーザーが DataGridView の下部にある新しい行に移動したときに発生します。

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

イベントの種類

次のコード例では、 イベントを NewRowNeeded 使用して新しい行が追加されるタイミングを追跡するため、イベント ハンドラーの CellValueNeeded ロジックで新しい行のセルを初期値に初期化できます。 この例は、リファレンス トピックで使用できるより大きな例の VirtualMode 一部です。

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

注釈

DataGridViewが仮想モードの場合、このイベントにより、新しい行のデータ ストアに新しいエントリを作成できます。また、行に既定値を設定することもできます。

イベントを処理する方法の詳細については、次を参照してください。処理とイベントの発生します。

適用対象

製品 バージョン
.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

こちらもご覧ください