I have a function to delete single rows on right click delete in a datagridview..
code:
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var hti = dataGridView1.HitTest(e.X, e.Y);
if (hti.RowIndex != -1)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[hti.RowIndex].Selected = true;
}
}
}
private void DeleteRow_Click(object sender, EventArgs e)
{
Int32 rowToDelete = dataGridView1.Rows.GetFirstRow(DataGridViewElementStates.Selected);
if (rowToDelete != -1)
{
dataGridView1.Rows.RemoveAt(rowToDelete);
dataGridView1.ClearSelection();
}
}
but now I want to delete multiple rows on selection.
First I don't know why I cannot select multiple rows.
Second I want to delete multiple delete using the delete button and right click mouse delete.
Can someone help me?
Edit:
Take a look at your code. You are setting the selected row depending on the results of the HitTest
method. The DataGridView
property SelectedRows
will determine which rows are selected. Not sure why you need to execute a HitTest
, but then again perhaps you haven't fully explained the desired functionality.
if (e.Button == MouseButtons.Right)
{
var hti = dataGridView1.HitTest(e.X, e.Y);
if (hti.RowIndex != -1)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[hti.RowIndex].Selected = true;
}
}
Make sure that the MultiSelect
property is set to true
on your datagrid.
Then, you can utilize the SelectedRows
property in the event of your choice:
foreach (DataGridViewRow row in DataGridView1.SelectedRows)
{
DataGridView1.Rows.Remove(row);
}
please take care the following case:
if you need to delete records in datagrid, don't just store the rowIndex in datagrid, (instead you should store the corresponding keys in DB):
eg: I want to delete row 1 and 2 in datagrid, I stored their rowIndex in datagrid. after row 1 is deleted in datagrid, data in row 2 will SHIFT UP to row 1, and data in row 3 will SHIFT UP to row 2, because you are using the datagrid rowIndex to locate what data to delete, therefore, result: data1 and data3 will be deleted finally.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With