自定义数据网格视图列不保留更改

本文关键字:保留 视图 数据 数据网 网格 自定义 | 更新日期: 2023-09-27 17:48:55

我有DataGridViewColumn,它使用DateTimePicker控件来编辑单元格值。 它基于 MSDN 上给出的示例。

使用此方法创建自定义列时,我遇到了两个问题:1.即使在更改日期时间选择器后,单元格中的值也会恢复为当前日期。2.编辑最后一行中的日期时间选择器单元格不会触发新行的添加(我假设这与上一个问题有关)。

如何将在日期时间选取器中选取的值分配给文本框单元格? 如有必要,我可以提供代码示例,但我的控件几乎与上面的 MSDN 链接相同。

自定义数据网格视图列不保留更改

从 DateTimePicker 继承并实现 IDataGridViewEditControl 的控件需要重写 OnValueChanged(...) 事件,以便检测编辑控件何时被更改。 为了给蜜蜂分配新值,必须像这样重写该方法:

protected override void OnValueChanged(EventArgs eventargs)
{
    this.EditingControlValueChanged = true;
    this.EditingControlDataGridView.NotifyCurrentCellDirty(true);
    base.OnValueChanged(eventargs);
}

作为旁注,在 MSDN 示例中的 CalendarEditControl 类中,似乎不需要valueChanged变量和rowIndex变量,因为这些值可以分别由 EditControlRowIndex 和 EditControlValueChanged 处理(如果我正确阅读了该示例)。

MSDN 参考