In meinem Haupt Form1, ichC# Wie kann ein Ereignis ausgelöst werden, um den Timer von einer anderen Klasse als dem Hauptformular zu starten?
int duration = 5;
public void timer1_Tick(object sender, EventArgs e)
{
duration--;
if (duration == 0)
{
timer1.Stop();
MessageBox.Show("timesup");
}
}
In anderen Ländern haben, (speziell der Klasse I für meine UDP-Listener verwenden), betreibe ich ein Ereignis Änderungen an der Form zu referenzieren
private MyProject.Form1 _form { get; set; }
public UDPListener(TapeReader.Form1 form)
{
_form = form;
}
Dann würde ich versuchen, es zu rufen, wenn die eingehenden Daten meine Kriterien erfüllt
if (numberSize>paramSize)
{
if (_form.listBox1.InvokeRequired)
{
_form.listBox1.Invoke((MethodInvoker)delegate()
{
//Below is where I would like the timer to start
_form.timer1.Start();
//This won't work as I need the timer1_Tick from the main. How can I run this from a different class other than the main form?
});
}
}
Wie die anderen Komponenten meiner Form, kann ich darauf verweisen fein mit _form
aber timer1_Tick ist eine Methode (void). Gibt es eine Möglichkeit, dies zu tun?
Ich verstehe nicht, warum Sie benötigen 'timer1_Tick' in dieser anderen Methode? –
Warum rufen Sie auch 'timer1.Start();' _inside_ den Timer-Tick-Handler? – DGibbs
Auch "timer1.Enabled = true;" und "timer1.Start();" ist das gleiche. – LarsTech