如何在没有datetimepicker的情况下编辑datagridview中的日期时间值?

时间:2015-12-27 15:23:12

标签: c# winforms datetime datagridview datetimepicker

我在datagridview中有一个datetime列,我以自定义格式显示它:dd / MM / yyyy HH:mm:ss

我想编辑日期时间值,所以我尝试添加一个datetimepicker控件,如果正确选择了值,它就可以工作。 (但我觉得它不高效。)

有时接受无效值并且无限制地发生dgv_dataerror事件而不让我更改值。

例如,当我使用键盘箭头键从一个单元格移动到另一个单元格时,如果按空格键,则意外地将单元格值变为空,并且无限期地发生dataerror事件。

是否有任何替代解决方案可以在没有datetimepicker控件的情况下实现此目的,以更改日期时间值?

1 个答案:

答案 0 :(得分:1)

我在这里找到答案: https://msdn.microsoft.com/en-us/library/7tas5c80%28v=vs.110%29.aspx

它使用DateTime选择器创建一种DataGridViewColumn ...

编辑:如何动态添加此自定义列:

        dgvMain.DataSource = bulkImportTable;
        CalendarColumn col = new CalendarColumn();
        col.Name = "DeployDate";
        dgvMain.Columns.Remove("DeployDate");
        dgvMain.Columns.Add(col);

        col.DataPropertyName = col.Name;
        foreach (DataGridViewRow row in dgvMain.Rows)
        {
            row.Cells[dgvMain.Columns.Count - 1].Value = DateTime.Now.ToShortDateString();
        }

在此代码中,我使用ToShortDateString(),但您可以在此处使用自己的自定义方法。请务必在自定义的CalendarColumn中更改此自定义代码... 使用ShortDateString和LongDateString的优点是,当客户端具有不同的区域设置时,这会动态变化...

相关问题