У меня есть несколько форм, но, в частности, я пытаюсь заставить форму1 делать что-то, когда таймер в форме5 тикает. Когда таймер тикает, он должен использовать функцию SimulAuto в form1, чтобы изменить его. Я начинаю с использования метода click для запуска form5. Я пробовал несколько вещей, но это просто не работает. Или кто-нибудь может мне помочь, предложив альтернативный подход к решению этой проблемы. Спасибо!
Вот мой код:
public partial class FormPrincipal : Form
{
Point[] initialPos = new Point[100];
ListaVuelos lv = new ListaVuelos();//Declarar una lista de vuelos nueva.
Sector s = new Sector();
int MAX;
Form5 f5 = new Form5();
PictureBox[] aviones_vector = new PictureBox[100];//preguntar porque no me deja poner el integer MAX como referencia
public FormPrincipal()
{
InitializeComponent();
}
...
public void SimulAuto()
{
int minutos = f5.SetMinutos();
lv.Avanzar(minutos);
ActualizarPosicion();
}
private void automáticaToolStripMenuItem_Click(object sender, EventArgs e)
{
f5.ShowDialog();
}
}
public partial class Form5 : Form
{
int cuenta;
int tiempociclo;
int tiempototal;
public event Action SimulAuto;
public Form5()
{
InitializeComponent();
}
public int SetMinutos()
{
return this.tiempociclo;
}
private void Form5_Load(object sender, EventArgs e)
{
MessageBox.Show("Cada ciclo dura 5 segundos.");
timer1.Interval = 5000;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
tiempociclo = Convert.ToInt32(duracionCicloTxt.Text);
tiempototal = Convert.ToInt32(tiempoSimularTxt.Text);
cuenta = 0;
}
private void timer1_Tick(object sender, EventArgs e)
{
while ((cuenta*tiempociclo)<tiempototal)
{
cuenta++;
tiempoTranscurridoLbl.Text = "Tiempo transcurrido: " + Convert.ToString(((cuenta + cuenta) * tiempociclo)) + "minutos.";
}
MessageBox.Show("Simulación completada.");
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void button3_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void Form5_FormClosing(object sender, FormClosingEventArgs e)
{
cuenta = 0;
}
}