Well, you already did it:
steps[0].StopTimeOut();
Just declare all Step StopTimeOut classes in the base class as protected or public
Example:
public Step : UserControl { .... public virtual void StopTimeOut() {
and in code:
List<Step> steps = new List<Step>(); steps.Add(new Step1()); steps.Add(new Step2()); ..
source share