How do I display a digital timer (StopWatch) in datagridview column dynamically c#?

前端 未结 1 957
谎友^
谎友^ 2021-01-14 09:37

I have datagridview whose datasource is datatable.

I have two columns in datagridview:

NAME, IN TIME

After the datagridview is loaded, I want to add

1条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-14 09:47

    You can add a string column to DataTable and use it as duration column. Then you can subscribe to Tick event of a timer which you set it's interval to 1000 and show the result of count down timer in duration column:

    void timer_Tick(object sender, EventArgs e)
    {
        foreach( DataRow row in YourDataTable.Rows)
        {
            var diff = row.Field("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";
            }
        }
    }
    

    0 讨论(0)
提交回复
热议问题