我想在我的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;
}
}
这可能吗?
答案 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。