Select newly added Row - DataGridView and BindingSource

22,749

Solution 1

Dont know id its the best solution but for instance looks better than iterate.

        DataRowView drv = (DataRowView)source.AddNew();
        grupoTableAdapter.Update(drv.Row);
        grupoBindingSource.Position = grupoBindingSource.Find("ID", drv.Row.ItemArray[0]);

Solution 2

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.

Solution 3

Is it possible? I would say yes.

Here's an aricle related to it:
DataGridView and BindingSource (on Joel's Forum)

Share:
22,749
Ruben Trancoso
Author by

Ruben Trancoso

Addicted programmer Do at home just because you can supporter

Updated on July 05, 2022

Comments

  • Ruben Trancoso
    Ruben Trancoso almost 2 years

    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?