Я не знаю, почему это происходит, но когда я создаю новую форму внутри EventHandler, она исчезает, как только метод завершается.
Вот мой код. Я отредактировал это для ясности, но логически, это точно так же.
static void Main()
{
myEventHandler = new EventHandler(launchForm);
// Code that creates a thread which calls
// someThreadedFunction() when finished.
}
private void someThreadedFunction()
{
//Do stuff
//Launch eventhandler
EventHandler handler = myEventHandler;
if (handler != null)
{
handler(null, null);
myEventHandler = null;
}
}
private void launchForm(object sender, EventArgs e)
{
mf = new myForm();
mf.Show();
MessageBox.Show("Do you see the form?");
}
private myForm mf;
private EventHandler myEventHandler;
Новая форма отображается до тех пор, пока MessageBox "Вы видите форму?" есть. Как только я нажму на нее ОК, форма исчезнет.
Чего мне не хватает? Я думал, что, назначив новую форму переменной класса, она останется в живых после завершения метода. Видимо, это не так.