回 帖 发 新 帖 刷新版面

主题:form1关闭问题

form1里的
 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2=new Form2();
            f2.Show();
            Hide();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Dispose();
            //Close();

        }
form2里的
private void button1_Click(object sender, EventArgs e)
        {
            Form1 f1 = new Form1();
            f1.Show();
            Close ();
}
为什么我运行后
直接点form1里的button2,程序直接退出
但是如果点了form1里的button1进入form2,再由from2点button1回到form1,这时候点button2就只是窗口没了,但是不能退出程序?

回复列表 (共2个回复)

沙发

你要明白初始线程的意义
按照你的说法,程序入口处应该是Application.Run(new Form1());
假设这个实例为a
那么应当是a退出之后程序终止

1、a按button2,退出:这个很简单,符合上述终止条件
2、a按button1进入Form2的一个实例b,同时a仅仅是隐藏了起来(Hide),b的button1创建了另外一个Form1实例c,然后b关闭,这时候关闭的Form1是实例c,c关闭了,a还存在呢,只不过隐藏了起来,所以没有达到程序终止条件

板凳

我来回复

您尚未登录,请登录后再回复。点此登录或注册