C#如何同时选择和删除两个单元格的内容?

时间:2015-12-01 20:40:09

标签: c# datagridview cell

我想在我的DataGridView中添加以下功能,使其可以选择两个或更多单元格并删除它们的内容(可能右键单击然后选择删除)。目前我对单元格值更改事件的实现是:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        double currentCellValue;
        string PinInGrid = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        if (!double.TryParse(PinInGrid, out currentCellValue))
        {
            MessageBox.Show("Incorrect input!");
            DataTable dt = this.dataGridView1.DataSource as DataTable;
            dt.RejectChanges();
            return;
        }
    }

这可能吗?

1 个答案:

答案 0 :(得分:1)

这可能更适合作为评论,但我没有足够的权限。删除多个单元格的内容可以这样实现:

    private void dgvItems_KeyDown(object sender, KeyEventArgs e)
    {
        var dgv = (DataGridView)sender;

        if(e.KeyCode == Keys.Delete)
        {
            foreach(DataGridViewCell cell in dgv.SelectedCells)
            {
                if (!cell.ReadOnly)
                {
                    cell.Value = "";
                }
            }
        }
    } 

这是通过选择任意数量的单元格并按“删除”来触发的,但触发器可以是您喜欢的任何内容。根据您单元格的数据类型,您可能需要更改cell.Value = ""行。

有关带删除选项的右键单击上下文菜单的实现,请参阅this question