2013-03-21 4 views
2

У меня есть label, который получает заполненные два strings, очень короткий друг за другом, так что только последний string будет виден в .Text property в label.Обновление этикетки с таймером

Я хочу, чтобы сделать паузу в 1,5 секунды между этими strings, например:

string strMessage1 = "ONE"; 

string strMessage2 = "TWO"; 

Label.Text = strMessage1; 
//Pause of 1.5 seconds 
Label.Text = strMessage2; 

Теперь я попытался установить вверх timer, следующим образом:

private void FillString() 
{ 
    stringTimer = new System.Timers.Timer(); 
    stringTimer.Interval = 1500; 
    stringTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnStringTimerElapsed); 

    Label.Text = strMessage1; 
    stringTimer.Start(); 
} 

private void OnStringTimerElapsed(object sender, EventArgs e) 
{ 
    Label.Text = strMessage2; 
} 

Но это только показывает, сначала string в label и ничего не делает со вторым. Что мне делать?

+0

Вы когда-нибудь называли метод 'FillString'? [edit] Я вижу - 'FillString' устанавливает его в' strMessage1', а затем никогда не устанавливает его в 'strMessage2'? –

+0

Да, это не мой полный исходный код. – Max

+0

Когда интервал времени истек (1500 миллисекунд), он должен перейти к методу OnStringTimerElapsed, и это должно Label.Text в strMessage2. – Max

ответ

1

После присвоения второго строкового значения аннулируйте объект метки.

Label1.Invalidate(); 
Смежные вопросы