Вы можете создать событие из класса, которое останавливает таймер и вызывает его всякий раз, когда вы хотите, чтобы это произошло. Из внешнего класса (основной формы) после того, как вы установите класс, вы подписываетесь на это событие и останавливаете таймер в обработчике.
Вот как вы поднимаете событие:
class Class1
{
public event EventHandler StopTimer;
public void SomeMethod()
{
if (StopTimer != null)
StopTimer(this, EventArgs.Empty);
}
}
Вот что у вас есть в основной форме:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Class1 myClass = new Class1();
myClass.StopTimer += new EventHandler(myClass_StopTimer);
timer1.Enabled = true;
timer1.Start();
}
void myClass_StopTimer(object sender, EventArgs e)
{
timer1.Stop();
timer1.Enabled = false;
}
}