按下FORM1中按钮B1,弹出FORM2;
按下FORM2中返回按钮R1弹出FORM1;
我的代码:
FORM1中B1响应函数
{
FORM2 F2 = new FORM2();
F2.show();
this.hide();
}
FORM2中返回按钮R1函数
{
FORM1 F1 = new FORM1();
F1.show();
this.close();// 这个地方可以用close() or dispose(),但为什么FORM1中同样的位置只能用hide??
若是FORM1用close,整个程序就关闭了,为什么啊??
}
代码有几个问题:
1. FORM1中弹出FORM2后就完成了它的任务,没有及时释放资源===这个怎么办?
2. FORM2中每次返回都要新建一个FORM1对象,虽然后面有close函数,但界面很多时,是不是太浪费资源了??
这种跳转,比较规范的是用哪种方式?????==============》》》这个问题最重要,希望高手给出专业代码!!!!!!
希望各位高手能给点指导,或是贴出专业点的程序。。。
5 个解决方案
#1
问题一:
Form1是你程序的主窗体,主窗体调用Close,则整个程序关闭.
问题二:
创建Form2时
FORM2 F2 = new FORM2();
F2.show(this); //this为Form1
关闭Form2时
this.Close()
this.Parent.Show(); //Parent其实就是Form1
Form1是你程序的主窗体,主窗体调用Close,则整个程序关闭.
问题二:
创建Form2时
FORM2 F2 = new FORM2();
F2.show(this); //this为Form1
关闭Form2时
this.Close()
this.Parent.Show(); //Parent其实就是Form1
#2
this.Parent.Show(); ====》这句执行有问题,报错:未将对象引用设置到对象实例。。你的想法我觉得对,但是该怎么改这个错误??
继续等待...
#3
写错了,不好意思
应该是:
if(this.Owner != null)
this.Owner.Show();
应该是:
if(this.Owner != null)
this.Owner.Show();
#4
#5
this.Close()之后,已经开始销毁.所以.以后的操作都可能失败...
有个解决方法是,把在Form1里面把Form2实例化,然后把Form1.Handle传递给form2.然后把form1隐藏.
在form2里面,需要显示form1的时候,可以通过Form.FromHandle(nextFrm)把form1获得.然后,调用show()
在form1和form2的关闭事件里面判断,销毁另外一个form.
#1
问题一:
Form1是你程序的主窗体,主窗体调用Close,则整个程序关闭.
问题二:
创建Form2时
FORM2 F2 = new FORM2();
F2.show(this); //this为Form1
关闭Form2时
this.Close()
this.Parent.Show(); //Parent其实就是Form1
Form1是你程序的主窗体,主窗体调用Close,则整个程序关闭.
问题二:
创建Form2时
FORM2 F2 = new FORM2();
F2.show(this); //this为Form1
关闭Form2时
this.Close()
this.Parent.Show(); //Parent其实就是Form1
#2
this.Parent.Show(); ====》这句执行有问题,报错:未将对象引用设置到对象实例。。你的想法我觉得对,但是该怎么改这个错误??
继续等待...
#3
写错了,不好意思
应该是:
if(this.Owner != null)
this.Owner.Show();
应该是:
if(this.Owner != null)
this.Owner.Show();
#4
#5
this.Close()之后,已经开始销毁.所以.以后的操作都可能失败...
有个解决方法是,把在Form1里面把Form2实例化,然后把Form1.Handle传递给form2.然后把form1隐藏.
在form2里面,需要显示form1的时候,可以通过Form.FromHandle(nextFrm)把form1获得.然后,调用show()
在form1和form2的关闭事件里面判断,销毁另外一个form.