datagridview中添加鼠标右键选中行并删除菜单

private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.RowIndex > -1 && e.ColumnIndex > -1)
{
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
dataGridView1.Rows[e.RowIndex].Selected = true;
}

}

新手求教
1:我这样设置后点击右键会弹出菜单也能选中当前行,但是为什么这个相当于Ctrl+鼠标左键的多选功能啊?
2:怎么在点击删除行事件中删除datagridview和数据库中的数据?
第一个问题解决了!
求大神们帮我把第二个问题解决吧!
最新回答
頖縌者丶菜鸟

2024-06-23 00:40:20

直接给DataGridView指定一个ContexMenu右键菜单
在右键菜单的Opening事件中判断DataGridView是否有选中行,如果没有,则把操作的菜单上禁用显示为灰色,或干脆e.Cancel()不弹出了,如果有,则获取选择行集合的标识,按这些标识去数据库删除,然后重新绑定一下
冷魅

2024-06-23 04:25:35

可以用selectedrows获得你当前选中的行DataGridViewSelectedRowCollection rows = dataGridView.SelectedRows;然后再用dataGridViewFile.Rows.Remove(datagridviewrow)把要删除的行删了就可以了