Select newly added Row - DataGridView and BindingSource

Ruben Trancoso picture Ruben Trancoso · Nov 3, 2009 · Viewed 22.4k times · Source

I'm adding a new Row to a BindingSource that is Bound to a DataGridView

source.AddNew();

After this, use BindingSource to get the newly added row is return the next row in the DataGridView when its sorted.

ROW "A"
ROW "B" <- myBindingSource.AddNew();
ROW "C"

myBindingSource.Current gives ROW "C". (it became the selected row in the DataGridView)

I need this because I want to update just the newly added row

            DataRowView drv = (DataRowView)myBindingSource.Current;
            myTableAdapter.Update(drv.Row);

and not the entire table.

            myTableAdapter.Update(myDataSet.myTable);

and also, I would like to have this newly added line selected in the DataGridView after insertion.

is it possible in some way?

Answer

Oliver Friedrich picture Oliver Friedrich · Jan 22, 2010

Use the events from the DataGridView like this for this task:

private void RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    this.Rows[e.RowIndex].Selected = true;
} 

That marks the newly added row as the selected.