菜鸟提问
比如说 Program.cs文件中含的是: Application.Run(new form1);
而在 form1 中有按钮可以打开 form2 但是并不能销毁掉from1
又如 form2 中有按钮可以打开 form3 但怎样能销毁掉form1 和form2 ???
再就是 如果有很多 form 而各个窗体又都是不一样的,又该怎样来实现每次打开新的窗体,同时又能销毁掉旧的窗体?
希望代码尽量简单,而且注释尽量详细 谢谢了
(搜索到的答案太让人寒心了...)
比如说 Program.cs文件中含的是: Application.Run(new form1);
而在 form1 中有按钮可以打开 form2 但是并不能销毁掉from1
又如 form2 中有按钮可以打开 form3 但怎样能销毁掉form1 和form2 ???
再就是 如果有很多 form 而各个窗体又都是不一样的,又该怎样来实现每次打开新的窗体,同时又能销毁掉旧的窗体?
希望代码尽量简单,而且注释尽量详细 谢谢了
(搜索到的答案太让人寒心了...)
newfrm.Show(); 第2个
form3 newfrm = new form3();
newfrm.Show();
form1.Hide();
form2.Hide();企业黄页:http://www.12580520.com or http://www.0663bx.com/yellow
newform.dispose(); //释放资源
newform =null; //类似于自杀
public static void FormShow(Form formInstance)
{
if (formInstance == null)
{
return;
}
formInstance.Show();
这里接其他的,如activatem,FormWindowState等.
}
.........................
然后把启动窗体外的form2建立一个private static form2 formInstance的私有静态.
以及每个窗体建立启动过程
public static fmMotherSearch FormInstance
{
get
{
if (formInstance == null || formInstance.IsDisposed)
{
formInstance = new form2();
}
return formInstance;
}
}
其他form34567都一样.一般情况下把这些窗体的构造函数改为private统一启动方式.启动窗体的方式则为 : 公共类.FormShow(form2.FormInstance);这样每个窗体的实际类名是保存在自己窗体内的private的,所以除了主窗口外都可以随意关闭而不影响其他窗体.
缺点是每个窗体只能启动一次
建立一个public静态类 建立这个公共方法
public static void FormShow(Form formInstance)
{
if (formInstance == null)
{
return;
}
formInstance.Show();
这里接其他的,如activatem,FormWindowState等.
}
.........................
然后把启动窗体之外的如form2建立一个private static form2 formInstance的私有静态.
以及每个窗体建立启动过程
public static form2 FormInstance
{
get
{
if (formInstance == null || formInstance.IsDisposed)
{
formInstance = new form2();
}
return formInstance;
}
}
其他form34567都一样.一般情况下把这些窗体的构造函数改为private统一启动方式. 启动窗体的方式则为 : 公共类.FormShow(form2.FormInstance); 这样每个窗体的实际类名是保存在自己窗体内的private的,所以除了主窗口外都可以随意关闭而不影响其他窗体.
缺点是每个窗体只能启动一次
2楼 谢谢你的支持 我都搜过了
3楼 你没看清我的问题,主窗体并不能销毁掉
4楼 大家一起学习就是哈
5楼 你说的大家都学过
6楼 谢谢帮忙顶哈
7-9楼 嘿嘿 你的答案最靠谱了 不过我想要的是 from1 from2都是可以销毁的
即每次创建新窗体时旧窗体同时销毁掉
想想应该是能通过修改Application.Run()中的参数来实现的,只是自己没实现
倒是觉得有点遗憾而已 不过你的方法以及很不错了