自定义设置后的动态计时器

时间:2014-06-10 13:08:24

标签: c# winforms timer

请告诉我如何整理计时器列表的设置。 我有一个网格,点击后,打开一个窗口,其中一行设置时间,计时器应该工作多长时间,现在我与逻辑混淆了,我仍然只有一个计时器,但是一般来说,他们应该在网格 N-quantity +我得到的时间也必须了解它的建立时间..直到我有定时器列表,但问题是定时器可以分散在 Grid 中,并且寻找 timerList [rowNumber] 是不正确的......

public void timerStart(string hour, string min, string sec)
    {
        hoursF1 = Convert.ToInt32(hour);
        minutesF1 = Convert.ToInt32(min);
        secondsF1 = Convert.ToInt32(sec);

        DateTime date = DateTime.Now;
        date = date + new TimeSpan(hoursF1, minutesF1, secondsF1);
        string finishTime = date.ToLongTimeString();

        this.dataGridView1.Rows.Add();
        this.dataGridView1.Rows[rowNum].Cells[8].Value = finishTime;
        this.dataGridView1.Refresh();

        System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
        timersList.Add(timer);
        timersList[0].Tick += new EventHandler(timer_Tick);
        timersList[0].Interval = 1000;
        timersList[0].Enabled = true;
        timersList[0].Start();
    }

    private void timer_Tick(object sender, EventArgs e)
    {
        if ((minutesF1 == 0) && (hoursF1 == 0) && (secondsF1 == 0))
        {
            timersList[0].Enabled = false;
            taskUp(rowNum); //call to method 
            MessageBox.Show("secc");
        }
        else
        { // Else continue counting.
            if (secondsF1 < 1)
            {
                secondsF1 = 59;
                if (minutesF1 == 0)
                {
                    minutesF1 = 59;
                    if (hoursF1 != 0)
                        hoursF1 -= 1;

                }
                else
                {
                    minutesF1 -= 1;
                }
            }
            else
                secondsF1 -= 1;
        }
    }

0 个答案:

没有答案