Ну, вам нужно поддерживать какое-то состояние. Если честно, самый простой способ сделать это - захватить переменную в лямбда-выражении:
int count = 0;
timer.Tick += (sender, args) => {
count++;
label.Text = string.Format("{0} {1} running", count,
count == 1 ? "program" : "programs");
};
Кроме того, вы можете создать новый класс для поддержания этого состояния:
internal class ProgramCounterTimerHandler
{
private int count = 0;
private readonly Label label;
internal ProgramCounterTimerHandler(Label label)
{
this.label = label;
}
internal void ShowProgramCount(object sender, EventArgs e)
{
count++;
label.Text = string.Format("{0} {1} running", count,
count == 1 ? "program" : "programs");
}
}
Then you can use:
timer.Tick += new ProgramCounterTimerHandler(label).ShowProgramCount;
В качестве альтернативы, если вы довольны наличием переменной экземпляра в своем классе, вы можете отслеживать количество таким образом.