在下面的代码中,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中执行时,不会发生这种情况(既不是Debug也不是Release ),它只会在安装为clickonce应用程序时发生,然后 - 即使我只是单击可执行文件(在AppData文件夹下)(也许还有一些代码可以阻止它在VS中执行时发生,但是)可能是导致这种差异的原因是什么?或许某种类型的clickonce优化在常规发布模式下不能完成?)
它是th e时间打开'Reflector' –
@SriramSakthivel我假设你是指最后一段。好主意。谢谢。 – ispiro
不,我可以用VS自己重现 –