我有一个DataGridView
我可以编辑。编辑后,当我单击Enter或选择另一个单元格时,会发生CellValueChanged
事件,并保存此新值。
我的问题:如果我更改单元格值并关闭表格而没有单击Enter或之前选择另一个单元格,则不会保存该最后一个值。
有办法解决吗?
答案 0 :(得分:1)
假设您有一个DataTable
中的一个DataSource
和一个DataGridView
,然后使用以下代码进行验证并结束编辑:
this.Validate();
dataGridView1.BindingContext[yourDatTable].EndCurrentEdit();
答案 1 :(得分:0)
首先检查“ CellValueChanged”事件的工作方式。我认为在您关闭表单时不会触发该事件。我会做的是,当您关闭Form时,会触发“ FormClosing”事件,它会调用一个方法(“ SaveThisNewValue()”)来保存您的值。保存值的方法也用于“ cellValueChanged”事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
SaveThisNewValue();
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
SaveThisNewValue();
}
private void SaveThisNewValue()
{
//saves the cell value
}
答案 2 :(得分:0)
grid.EndEdit()在表单关闭事件中为我工作。