繁体   English   中英

如何在没有datetimepicker的情况下在datagridview中编辑datetime值?

[英]How to edit datetime value in datagridview without datetimepicker?

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

我想编辑datetime值,所以我尝试添加datetimepicker控件,如果正确选择了值,它就可以工作。 (但是我不认为这是有效的)。

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

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

是否有任何其他解决方案可以在没有datetimepicker控制的情况下更改datetime值来实现此目的?

我在这里找到了答案: 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的优势在于,当客户端具有不同的区域设置时,它会动态更改...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM