【发布时间】:2010-10-27 14:03:19
【问题描述】:
我有一个带有 DataGridView 的表单。
在这个DataGridView 中有一个DataGridViewComboBoxColumn。当更改此 DataGridViewComboBoxColumn 的单元格的值时,CellValueChanged 事件仅在离开单元格时触发(例如,如果我单击另一个单元格)。 当我更改值然后关闭表单时,不会触发该事件。
那么,如果我的表单只是关闭了,我该如何保存更改(如果有任何更改)?
[更新]
当 DataGridView 所在的窗体通过 form.ShowDialog() 显示时,不会触发 CellValueChanged:
using (FormWithDataGridView form = new FormWithDataGridView()) {
form.ShowDialog(); // DataGridView on form fires no CellValueChanged-Event when form gets closed
}
【问题讨论】:
-
我试过了,当我关闭表单时 CellValueChanged 甚至已经触发了!你能重试它并确保你正在更改原始值。
-
搞笑:我创建了一个小项目,复制了我的 DataGridView-initialisation-code 并且 CellValueChanged 事件也被触发了。但不是在我的实际应用程序中...?-|
-
停止编辑单元格时是否触发事件?我的意思是,如果您选择一个值,然后触发 EndEdit 事件(或类似事件),它会起作用吗?如果是这样,那么您可以在表单关闭时检查您是否处于编辑模式,如果是,则结束编辑。
标签: c# .net winforms events datagridview