我有 datagridview,其数据源是数据表。

我在 datagridview 中有两列:

姓名,及时

加载 datagridview 后,我想添加一个名为 DURATION 的新列,它是一个计时器列,即基于 IN TIME,DURATION 列应显示一个秒表,其时间间隔为 CURRENT TIME-IN TIME。

如何让 DURATION 列秒表像数字时钟一样持续计时?

最佳答案

您可以向 DataTable 添加字符串列并将其用作持续时间列。然后你可以订阅一个定时器的 Tick 事件,你将它的间隔设置为 1000 并在持续时间列中显示倒计时的结果:

void timer_Tick(object sender, EventArgs e)
{
    foreach( DataRow row in YourDataTable.Rows)
    {
        var diff = row.Field<DateTime>("DateTimeColumn").Subtract(DateTime.Now);
        if(diff.TotalSeconds>0)
        {
            row["DurationColumn"] = string.Format("{0} d {1:D2}:{2:D2}:{3:D2}",
                                       diff.Days, diff.Hours, diff.Minutes, diff.Seconds);
        }
        else
        {
            row["DurationColumn"] = "0 d 00:00:00";
        }
    }
}

关于c# - c# - 如何在datagridview列中动态显示数字计时器(StopWatch)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35668173/

10-17 02:33