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
HitTestmethod. TheDataGridViewpropertySelectedRowswill determine which rows are selected. Not sure why you need to execute aHitTest, but then again perhaps you haven’t fully explained the desired functionality.Make sure that the
MultiSelectproperty is set totrueon your datagrid.Then, you can utilize the
SelectedRowsproperty in the event of your choice: