Как увеличить во времени? - PullRequest
1 голос
/ 24 октября 2011

Я создаю приложение типа секундомера.Я использовал метку для отображения времени.Когда приложение запускается, метка инициализируется как «00: 00: 00», и я хочу увеличивать его время каждую 1 секунду.

Я пытаюсь выполнить эту работу с помощью таймера.

Ответы [ 5 ]

3 голосов
/ 24 октября 2011

В вашем таймере получите системное время, поэтому ваш таймер должен быть с очень маленьким интервалом, например 200 мс.Чтобы рассчитать время, просто рассчитайте currentTime - startTIme в секундах.

1 голос
/ 24 октября 2011

Если я вас правильно понял, это наверняка сработает.Установите начальный текст метки как «00:00:00».Установите интервал таймера равным 1000.

private void btnStartWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = true;
}

private void btnPauseWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = false;
}

int i = 1;
DateTime dt = new DateTime();
private void timer1_Tick(object sender, EventArgs e)
{
    label1.Text = dt.AddSeconds(i).ToString("HH:mm:ss");
    i++;
}

Надеюсь, это поможет.

1 голос
/ 24 октября 2011

У меня есть таймер в одном из моих приложений.

private int _seconds;

public string TimeDisplay
{
    get
    {
        TimeSpan ts = new TimeSpan( 0, 0, _seconds );
        return string.Format("{0,2:00}:{1,2:00}:{2,2:00}", ts.Minutes, ts.Minutes, ts.Seconds);
    }
}

Все, что вам нужно сделать, это сделать так, чтобы ваш timer_tick даже увеличивал _seconds и NotifyPropertyChanged (), если вы привязываетесь к нему. В любом случае, TimeDisplay будет иметь ваш результат.

0 голосов
/ 24 октября 2011

Вы хотите структуру TimeSpan .

Что-то вроде:

TimeSpan current = new TimeSpan(0);

// In your update loop:

current += TimeSpan.FromSeconds(1);
0 голосов
/ 24 октября 2011

Я надеюсь, что понимаю.

private void Button1_Click(System.Object sender, System.EventArgs e)
{

      Timer1.Interval = 1000;
      Timer1.Start();
}
private void Timer1_Tick(System.Object sender, System.EventArgs e)
{
        this.Label1.Text = DateTime.Now.ToString("hh/mm/ss");

 }

С уважением

...