当前位置:编程学习 > C#/ASP.NET >>

关闭窗口

如何在Form1窗口,关闭Form2窗口 --------------------编程问答-------------------- 你应该问如何在FORM1中取到FORM2。
问的人很多了,去搜索一下,搜索完没有想要的答案了再问。 --------------------编程问答-------------------- 这要看Form2的实例是怎么创建的。
如果是在Form1的方法里创建的,就这样
Form2 f=new Form2();
//...
f.Close();


总之Form1要拿到Form2的实例的引用。

有个比较差的方法,当Form2只有一个实例时,可以用单件模式:
class Form2:Form
{
  public static readonly Form2 Instance=//....

  ///......
}


在需要隐藏Form2的实例的时候,就Form2.Instance.Hide()。注意不能Close(),这样的话此实例就销毁了,不能再用了。 --------------------编程问答-------------------- 楼主是不是想实现类似千千静听这样的带子窗口的应用程序?

如果form2是在form1里面show出来的,那么你直接showdialog就行了,
如果不想使用模式窗口,可以定义form2为form1的全局变量,
在某个按钮事件里面直接form2.Close()就可以了。
--------------------编程问答-------------------- c#真麻烦 --------------------编程问答--------------------
引用 3 楼 youzelin 的回复:
楼主是不是想实现类似千千静听这样的带子窗口的应用程序?

如果form2是在form1里面show出来的,那么你直接showdialog就行了,
如果不想使用模式窗口,可以定义form2为form1的全局变量,
在某个按钮事件里面直接form2.Close()就可以了。

这个貌似会导致整个程序关闭,还是hide比较安全,只不过隐藏的话,可能要关闭进程?我也很纠结。要么就设置两个主窗口。 --------------------编程问答--------------------
引用 3 楼 youzelin 的回复:
楼主是不是想实现类似千千静听这样的带子窗口的应用程序?

如果form2是在form1里面show出来的,那么你直接showdialog就行了,
如果不想使用模式窗口,可以定义form2为form1的全局变量,
在某个按钮事件里面直接form2.Close()就可以了。


怎么定义form2为form1的全局变量? --------------------编程问答-------------------- http://topic.csdn.net/u/20110925/19/41f89892-0b36-4519-b09b-5eef1877d22b.html

我回复的这个应该有效 --------------------编程问答-------------------- Application.Exit();  //关闭整个[程序体]包括打开的所有窗体
接分中........ --------------------编程问答--------------------
引用 6 楼 yz818181 的回复:
引用 3 楼 youzelin 的回复:
楼主是不是想实现类似千千静听这样的带子窗口的应用程序?

如果form2是在form1里面show出来的,那么你直接showdialog就行了,
如果不想使用模式窗口,可以定义form2为form1的全局变量,
在某个按钮事件里面直接form2.Close()就可以了。


怎么定义form2为form1的全局变量?

Form1也是一个类啊,定义一个类的全局变量就是在类内面定义一个变量啊(一般放在构造函数前面就是了) --------------------编程问答-------------------- --------------------编程问答-------------------- Form2.Close() --------------------编程问答-------------------- 先new 再 Show() 再Close() --------------------编程问答--------------------
引用 2 楼 gqqnb 的回复:
这要看Form2的实例是怎么创建的。
如果是在Form1的方法里创建的,就这样

C# code

Form2 f=new Form2();
//...
f.Close();


总之Form1要拿到Form2的实例的引用。

有个比较差的方法,当Form2只有一个实例时,可以用单件模式:

C# code

class Form2:Form
{
  publi……



同意 --------------------编程问答-------------------- http://topic.csdn.net/u/20111005/01/cfcbee8b-376c-4e9e-8412-b04751567ea8.html --------------------编程问答--------------------
引用 4 楼 yz818181 的回复:
c#真麻烦

它與其他語言相比,其實一點也不麻煩。 --------------------编程问答-------------------- 学习啦 --------------------编程问答-------------------- 大家都是认为form2.close()吗?

窗体是单线的 你close()就等于 退出程序

只能Hide() 而不是 close()
--------------------编程问答-------------------- 在Form2里面输入
{this.Close();}
应该可以的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,