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和数据库中的数据?第一个问题解决了!求大神们帮我把第二个问题解决吧!
直接给DataGridView指定一个ContexMenu右键菜单在右键菜单的Opening事件中判断DataGridView是否有选中行,如果没有,则把操作的菜单上禁用显示为灰色,或干脆e.Cancel()不弹出了,如果有,则获取选择行集合的标识,按这些标识去数据库删除,然后重新绑定一下
可以用selectedrows获得你当前选中的行DataGridViewSelectedRowCollection rows = dataGridView.SelectedRows;然后再用dataGridViewFile.Rows.Remove(datagridviewrow)把要删除的行删了就可以了