Скорее всего, событие таймера обращается к элементу управления из другого потока, например, из события Timer.Interval. Чтобы избежать этой проблемы, необходимо проверить свойство Control.InvokeRequired, и, если оно истинно, доступ к элементу управления должен быть выполнен с использованием делегата из метода Control.Invoke.
Примером этого может быть следующий:
void UpdateLabel(Label lbl, String text)
{
if (lbl.InvokeRequired)
{ lbl.Invoke(new Action<Label, String>(UpdateLabel), new object[] { lbl, text }); }
else
{ lbl.Text = text; }
}