0

我创建了一个代码来完成所有这一步:
1. 右键单击​​ datagridview 中的任何索引。
2. 在工具条菜单中选择删除选项
3. 当前行选中突出显示
4. 确认删除。
5. 删除。

private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
    {
        var confirmDelete = MessageBox.Show("Are you sure to delete current selected row?", "Row Deleted", MessageBoxButtons.YesNo);
        if (confirmDelete == DialogResult.Yes)
        {
            if (this.dataGridView1.SelectedRows.Count > 0)
            {
                dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
            }
        }
    }

此代码仅在第 3 步中工作并没有发生。我希望它是这样的。

在此处输入图像描述

4

1 回答 1

0

为 datagridview 的 CellMouseClick 事件编写事件处理程序

private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e) 
{
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0 && e.Button == MouseButtons.Right)
    {
       dgvBookmarks.Rows[e.RowIndex].Selected = true;
       Rectangle r = dgvBookmarks.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);

       contextMenu.Show((Control)sender, r.Left + e.X, r.Top + e.Y);
    }
}
于 2014-03-12T07:13:18.733 回答