Я делаю приложение «Календарь» для себя и для обучения.
До сих пор у меня не было проблем с множественными формами, открытием новых друг над другом и т. Д.
Вот пример:
private void button1_Click(object sender, EventArgs e)
{
if (ceForm != null) ceForm.Close();
ceForm = new CalendarEventForm();
ceForm.Show();
}
В любом случае, я теперь начал добавлять таймеры для всплывающей формы «напоминания» до того, как произойдут важные события в моем календаре (то есть за 1 час до и т. Д.).
Код устанавливает таймеры при загрузке программы, а затем по истечении каждого таймера это называется:
static void lazyTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
mainForm.ShowReminder((sender as LazyTimer).ReferredEvent);
}
LazyTimer точно такой же, как System.Timers.Таймер, за исключением добавленного свойства «ReferredEvent», которое ссылается на событие календаря, о котором нужно напомнить.
MainForm.ShowReminder () выглядит следующим образом:
public void ShowReminder(LazyEvent lazyEvent)
{
ReminderForm newReminder = new ReminderForm();
newReminder.LoadEvent(lazyEvent);
newReminder.Show();
}
Странная вещьчто ReminderForm падает.Я пробовал это с другими формами (такими как CalendarEventForm, который, как я знаю, работает нормально), и они тоже вылетали.Однако, когда я пытаюсь загрузить ReminderForm нажатием кнопки на главной форме, она работает нормально.
Почему мои формы вылетают при загрузке (косвенно) по таймеру?