Приложение WinForms, содержащее пользовательский элемент управления, LabelProgressBar : ProgressBar
.
Существует метод, позволяющий сделать этот элемент управления невидимым (он работает при вызове):
void statusIdle()
{
labelProgressBar1.Visible = false;
}
Мне нужно сделать этот элемент управления невидимым (вызывая описанный выше метод) определенное количество времени после его изменения (вызов других методов statusCompleted
или statusFailed
). Например:
void statusCompleted(string action)
{
// this is working
labelProgressBar1.Visible = true;
labelProgressBar1.Value = 100;
labelProgressBar1.setColourAndText(LabelProgressBarColours.WARNING_COLOUR, action + " Completed With Warnings");
// this is not
Timer timer = new Timer();
timer.Interval = 1000;
timer.AutoReset = false;
timer.Elapsed += new ElapsedEventHandler(timerElapsed);
timer.Start();
}
Обработчик события для таймера:
private void timerElapsed(object source, ElapsedEventArgs e)
{
statusIdle();
}
Элемент управления не обновляется должным образом. В чем причина этого?