Динамическое изменение даты - PullRequest
0 голосов
/ 23 декабря 2009

Это текущие дата и время, но я хочу, чтобы время динамически изменялось, как системное время:

DateTime t = DateTime.Now;
toolStripStatusLabel.Text = "Current Date:" + " " + t.ToString("MMMM dddd dd, yyyy")+"  " +"current Time:" +" " +t.ToString("hh:mm ss tt");

Ответы [ 4 ]

1 голос
/ 23 декабря 2009

На вашем winform добавьте Таймер и Метка .

В событии загрузки формы добавить код

yourTimer.Start();

На странице свойств элемента управления таймером измените свойство Interval на 1000.

Добавление события Timer Tick

private void yourTimer_Tick(object sender, EventArgs e)
{
    yourLabel.Text = DateTime.Now.ToString("dd MMM yyyy hh:mm:ss");
}
0 голосов
/ 23 декабря 2009

Просто еще немного информации

В вашем коде:

DateTime t = DateTime.Now;
toolStripStatusLabel.Text = "Current Date:" + " " 
                            + t.ToString("MMMM dddd dd, yyyy")
                            + "  " + "current Time:" 
                            + " " + t.ToString("hh:mm ss tt");

Текущая дата оценивается только один раз. То есть DateTime t = DateTime.Now хранит текущую дату в t, и это значение никогда не обновляется снова.

Так что даже если вы используете 't' сто раз, у него всегда будет значение, которое было ему присвоено.

Как указал Астандер, вам нужно обновлять его каждую секунду или около того.

Предложение:

Вместо использования "somestring" + "someotherstring" + "Yetanotherstring" вы должны вместо этого используйте String.Format. Например (на основе кода от astander)

private void yourTimer_Tick(object sender, EventArgs e)
{
    yourLabel.Text = String.Format("Current Date: {0}",  
                                  DateTime.Now.ToString("dd MMM yyyy hh:mm:ss"));
}
0 голосов
/ 23 декабря 2009

В противном случае вы можете установить время один раз со стороны сервера и продолжать изменять значение всплывающей подсказки из Javascript. В этом случае вам не нужно снова и снова заходить на сервер:)

0 голосов
/ 23 декабря 2009

Я предполагаю, что вы хотите, чтобы текст ToolStripStatusLabel менялся со временем. Для этого вам понадобится обратный вызов таймера. Добавьте Timer к вашей форме и в обработчике Elapsed установите текст на текущее время, как вы уже делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...