DataGridView.RowsAdded イベント
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Dim instance As DataGridView Dim handler As DataGridViewRowsAddedEventHandler AddHandler instance.RowsAdded, handler
public: event DataGridViewRowsAddedEventHandler^ RowsAdded { void add (DataGridViewRowsAddedEventHandler^ value); void remove (DataGridViewRowsAddedEventHandler^ value); }

新しい行の追加時にコントロール内の行が自動的に並べ替えられることはありません。新しい行を並べ替えた上で正しい位置に挿入するには、RowsAdded イベント ハンドラで Sort メソッドを呼び出します。
ユーザーが新しいレコードの行を使用して新しい行を追加すると、このイベントのハンドラの DataGridViewRowsAddedEventArgs.RowIndex 値は、新しいレコードの行の新しい位置のインデックスと同じになります。つまり、追加された行より 1 大きくなります。ただし、行をプログラムによって追加すると、RowIndex 値は追加された最初の行のインデックスになります。
仮想モードでは、このイベントは CellValuePushed イベントの前に発生し、これを使用してデータ ストアに新しいレコードを作成し、CellValuePushed イベント ハンドラで設定できます。

RowsAdded イベントを処理して、仮想 DataGridView の行数をインクリメントするコード例を次に示します。行数は CellValueNeeded ハンドラで使用されるため、新しい行で空のセルと初期化されたセルがいつ表示されるかがわかります。この例は VirtualMode のリファレンス トピックで取り上げている例の一部分です。
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)
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>();
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
private boolean newRowNeeded; private void dataGridView1_NewRowNeeded(Object sender, DataGridViewRowEventArgs e) { newRowNeeded = true; } //dataGridView1_NewRowNeeded private final int INITIALSIZE = 5000000; private int numberOfRows = INITIALSIZE; private void dataGridView1_RowsAdded(Object sender, DataGridViewRowsAddedEventArgs e) { if (newRowNeeded) { newRowNeeded = false; numberOfRows = numberOfRows + 1; } } //dataGridView1_RowsAdded #region "data store maintance" private final int INITIALVALUE = -1; private void dataGridView1_CellValueNeeded(Object sender, DataGridViewCellValueEventArgs e) { if (store.ContainsKey(e.get_RowIndex())) { // Use the store if the e value has been modified // and stored. e.set_Value((Int32)store.get_Item(e.get_RowIndex())); } else { if (newRowNeeded && e.get_RowIndex() == numberOfRows) { if (dataGridView1.get_IsCurrentCellInEditMode()) { e.set_Value((Int32)INITIALVALUE); } else { // Show a blank e if the cursor is just loitering // over(the) // last row. e.set_Value(""); } } else { e.set_Value((Int32)e.get_RowIndex()); } } } //dataGridView1_CellValueNeeded private void dataGridView1_CellValuePushed(Object sender, DataGridViewCellValueEventArgs e) { store.Add(e.get_RowIndex(), Int32.Parse(e.get_Value().ToString())); } //dataGridView1_CellValuePushed #endregion private Dictionary<int, int> store = new Dictionary<int, int>();

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataGridView クラス
DataGridView メンバ
System.Windows.Forms 名前空間
DataGridViewRowsAddedEventHandler
DataGridViewRowsAddedEventArgs
DataGridViewRowsAddedEventArgs.RowIndex
DataGridView.CellValuePushed イベント
OnRowsAdded
その他の技術情報
DataGridView コントロール (Windows フォーム)
Weblioに収録されているすべての辞書からDataGridView.RowsAdded イベントを検索する場合は、下記のリンクをクリックしてください。

- DataGridView.RowsAdded イベントのページへのリンク