如何在 c# 中动态显示 datagridview 列中的数字计时器(秒表)?
How do I display a digital timer (StopWatch) in datagridview column dynamically c#?
我有 datagridview,它的数据源是 datatable。
我在 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";
}
}
}
我有 datagridview,它的数据源是 datatable。
我在 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";
}
}
}