Amer
Amer

Reputation: 41

How can I delete dataGridView row on keyboard delete key press ? c#

How can I delete a selected row on keyboard delete key press ( remove from dataGridView and delete from the database ) ?

here how I populate the dataGridView :

 private void GetDate()
        {

            SqlDataAdapter adapter = new SqlDataAdapter("SELECT id as [ID],description as [Description],unit as [Unit], qty as [Quantity],unitRate as [Unit Rate], amount as [Amount], _datetime as [Date] FROM tbl_BOQ WHERE projectId = "+id, conn);
            adapter.SelectCommand.CommandType = CommandType.Text;

            DataTable table = new DataTable();
            table.Clear();

            adapter.Fill(table);


            dataGridView1.DataSource = table;


        }

Upvotes: 4

Views: 20403

Answers (2)

andyhasit
andyhasit

Reputation: 15299

I use the DataGridView's KeyDown event, and in the handler determine if it was the Delete key that was pressed:

if e.KeyCode == Keys.Delete...

Then find which item/row to delete by getting the SelectedRows property if your DataGridView is on FullRowSelect or RowHeaderSelect mode, else you can determine the row with something like this:

i = SelectedCells[0].RowIndex

then:

DataGridView.Rows[i].DataBoundItem

You would then simply need to delete the corresponding record from the database, and possibly refresh the DataGridView depening on how its tied in...

Upvotes: 9

Paul
Paul

Reputation: 4249

Have you tried using the KeyPress event of the DataGridView?

Then you could use the SelectedRows property of your DataGridView.

Upvotes: 2

Related Questions