C# 删除datagridview中的多行
我有一个功能,可以在datagridview中右键单击delete删除单行 代码: 但现在我想删除所选内容的多行。C# 删除datagridview中的多行,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个功能,可以在datagridview中右键单击delete删除单行 代码: 但现在我想删除所选内容的多行。 首先,我不知道为什么不能选择多行。 第二,我想删除多个删除使用删除按钮和右键单击鼠标删除 有人能帮我吗?编辑: 看看你的代码。您正在根据HitTest方法的结果设置所选行。DataGridView属性SelectedRows将确定选择哪些行。不确定为什么需要执行HitTest,但可能您还没有完全解释所需的功能 if (e.Button == MouseButtons.Right)
首先,我不知道为什么不能选择多行。
第二,我想删除多个删除使用删除按钮和右键单击鼠标删除 有人能帮我吗?编辑: 看看你的代码。您正在根据
HitTest
方法的结果设置所选行。DataGridView
属性SelectedRows
将确定选择哪些行。不确定为什么需要执行HitTest
,但可能您还没有完全解释所需的功能
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;
}
}
确保数据网格上的MultiSelect
属性设置为true
然后,您可以在选择的情况下使用SelectedRows
属性:
foreach (DataGridViewRow row in DataGridView1.SelectedRows)
{
DataGridView1.Rows.Remove(row);
}
请注意以下情况: 如果需要删除datagrid中的记录, 不要只在datagrid中存储rowIndex(而是应该在DB中存储相应的键): 我想删除datagrid中的第1行和第2行,我将它们的行索引存储在datagrid中。 在datagrid中删除第1行后,第2行中的数据将上移到第1行,并且 第3行中的数据将上移到第2行, 因为您使用datagrid rowIndex查找要删除的数据,因此, 结果:最终删除数据1和数据3
foreach (DataGridViewRow row in dgShow.SelectedRows)
{
string id = row.Cells[4].Value.ToString();
int x = Convert.ToInt16(id);
var del = context.ServicesPrice.Where(current => current.Id == x).FirstOrDefault();
context.ServicesPrice.Remove(del);
}
您可以在数据库中写入列id,而不是单元格[4]。多选有效。。但右键点击删除。。。当我选择多行并右键单击时,它只选择一行。。。如果您检查了datagrid的
SelectionMode
属性,为什么会发生这种情况?您确定选择的是整行而不仅仅是单元格吗?是的,我选择的是整行而不仅仅是单元格..选择模式在哪里。。??感谢我的选择模式是行标题选择
foreach (DataGridViewRow row in dgShow.SelectedRows)
{
string id = row.Cells[4].Value.ToString();
int x = Convert.ToInt16(id);
var del = context.ServicesPrice.Where(current => current.Id == x).FirstOrDefault();
context.ServicesPrice.Remove(del);
}