В следующем коде Form1
открывает еще два Form
s, а затем закрывает один из них. В результате вторая дочерняя форма также закрывается. Зачем?Закрытие одной дочерней формы закрывает другую дочернюю форму
public partial class Form1 : Form
{
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer { Interval = 2000 };
public Form1()
{
InitializeComponent();
ShowForm3();
(new Form2()).ShowDialog();//If this is changed to 'Show' - it doesn't get closed.
}
void ShowForm3()
{
Form3 f3 = new Form3();
f3.Show();
timer.Tick += (sender, e) => f3.Close();
timer.Start();
}
}
Form2
и Form3
являются стандартными формами VS.
() Дополнительно: Это простая версия исходного кода. В оригинале (который, конечно же, слишком длинный для публикации здесь) этого не происходит, когда выполняется из Visual Studio (ни отладка, ни выпуск) .Это происходит только при установке в качестве приложения clickonce, а затем - даже если я просто нажму исполняемый файл (в папке AppData). (Возможно, есть еще одна часть кода, которая предотвращает ее там, когда выполняется от VS, но Я еще не нашел, что еще.) Что может быть причиной этого несоответствия? Возможно, какой-то тип оптимизации в clickonce, который не выполняется в обычном режиме Release?)
Это th e раз, чтобы открыть 'Reflector' –
@SriramSakthivel Я предполагаю, что вы имеете в виду последний абзац. Хорошая идея. Благодарю. – ispiro
Нет, я могу воспроизвести использование самого VS –