C#中怎么在本窗体中关闭别的窗体

有两个窗体A,B,在A中点击一个Button出现窗体B,在B中点击Button时,怎么让A,B两个窗体全部关闭

最安全的做法是委托,委托就不需要找对象。比如我想再B窗体里面关闭C窗体,他们之间都找不到对象,对象在A里面实例化的,怎么办?委托就要用上了。
在B里面写委托主体申明,然后赋予事件主体。
public delegete void close;
public static event close close_c;
B的按钮事件中加入:
close_c();
C的窗体启动事件中订阅事件:
B.close_c+=()=>{
Enveroment.Exit(0);
};
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-31
B是通过点击A上的按钮出来的,那就好办了,你在B的构造函数里增加一个Form参数,在A里面new
B窗体的时候把 A自己的窗体传过去,然后B里面就能关闭A了

B中的代码

Private Form _A=null;
public B(Form A)
{
this._A=A
}

private void Close()
{
_A.Close();
}

A 中的代码
B b = new B(this);
b.Show()本回答被提问者采纳
第2个回答  推荐于2016-08-31
  一般窗体都是一个对象。
  比如一个winform,窗体。打开它的时候就是创建对象的过程,winform duixiang =new winform(a,b).
  这个时候如果要关闭这个窗体,必须要得到这个窗体的对象,直接关闭对象,这里的例子就是:duixiang.close()
  所以C#关闭别的窗体的关键在于获取这个窗体的对象,可以作为参数传递过来也好,使用全局静态对象应用也好,只要找到了,然后关闭就可以了。
第3个回答  推荐于2018-03-01
B是通过点击A上的按钮出来的,那就好办了,你在B的构造函数里增加一个Form参数,在A里面new
B窗体的时候把 A自己的窗体传过去,然后B里面就能关闭A了

B中的代码

Private Form _A=null;
public B(Form A)
{
this._A=A
}

private void Close()
{
_A.Close();
}

A 中的代码
B b = new B(this);
b.Show()
正如我所想本回答被网友采纳
第4个回答  2011-12-08
如果是在一个程序内的,只要把窗体归集在全局变量,你想关哪个只要操作变量是最方便的。如果跨程序,则需要钩子 。如果跨线程,需要通道

C#中怎么在本窗体中关闭别的窗体
最安全的做法是委托,委托就不需要找对象。比如我想再B窗体里面关闭C窗体,他们之间都找不到对象,对象在A里面实例化的,怎么办?委托就要用上了。在B里面写委托主体申明,然后赋予事件主体。public delegete void close;public static event close close_c;B的按钮事件中加入:close_c();C的窗体启动...

C#中如何在一个窗体上关闭另外一个窗体?
想退出程序可以使用这个Application.Exit();登陆窗口和主窗口可以参考下面的代码 新建一个类 class app{ \/\/\/ \/\/\/ 应用程序的主入口点。\/\/\/ [STAThread]static void Main(){ FrmLogin login=new FrmLogin();login.ShowDialog();if(判断是否登陆成功){ \/\/启动程序主窗口 Application.Run(new Frm...

C#中如何在一个窗体上关闭另外一个窗体?
frmMain这个作为启动窗体,在frmMain的Load事件里加载frmLogin:if(new frmLogin().show())==DialogResult.OK){ } frmLogin是直接关闭就可以了,frmLogin.close();

C# 如何打开一个新窗体后,关闭上一个窗体?
定义一个数组存放打开窗体的Name,在打开窗体的时候将数组中最后一个Name取出,在查找出对应的对象,关闭掉。在将要打开的窗体打开,将Name放到数组里面。

C#GUI编程时怎样操作一个窗口去关闭另一个窗口
这样可在主窗体中直接应运。3)如果是多个主窗体与一个副窗体之间传递信息,比如说点击任何一个主窗体中的按纽,就会弹出同一个副窗体(是同一个,而不是同样的窗体),就要在主窗体中这样写:GetSoilInfo getinfo; \/\/相当于一个temp变量 getinfo = (GetSoilInfo)Application.OpenForms["Get...

C# winfrom里如何关闭另个窗口
窗体创建与销毁的时候,都有对应的函数。Application.Close();退出程序,退出所有窗体。你要在B窗体关闭A窗体,首先要知道A窗体是怎样创建的。如果A窗体不是在B窗体创建的,如果要关闭,就需要得到A窗体的句柄。

C#打开一个新窗体的时候关闭另一个窗体
\/\/到此再来一个另外的父窗体,就是你关闭了第一个父窗体,又要打开的一个窗体。比如叫做form2 form2 f2=new form2()Application.Run(f2);} 按照上面的写的话程序执行到 this.close()就将f1关闭了,这个时侯他才会执行f2。这样写你就不用new什么东西了 你要关闭第一个父窗体直接this.close()他...

C#怎么实现在一个窗体单击按钮关闭另一个窗体?
将要关闭的窗体 当成参数或者属相传给现在的窗体。然后进行相应的操作

C#中,如何关闭除主窗体以外的所有窗体?
这个可以使用一个辅助类,类中用比如List<Form>获取各个已经打开子窗体的引用,当点击首页时,循环遍历list关闭子窗体,这个只是我的思路你试试,在窗体程序中还没遇见点击首页关闭所有子窗体,只做过点击首页,当前子窗体关闭,并打开主窗体!

C# 怎么样可以关闭非主窗体,同时关闭整个程序(进程)
不把Login设置成主窗体,把登录后的窗体设置为主窗体在主窗体的Load事件处理方法中加载Login窗体,并把主窗体的visible属性设置为false加载Login的时候把主窗体的句柄传给它关闭Login的时候,把住窗体的visible属性设置为true关闭登录后的窗体,程序就关闭了 ...

相似回答