C#中怎么在本窗体中关闭别的窗体
有两个窗体A,B,在A中点击一个Button出现窗体B,在B中点击Button时,怎么让A,B两个窗体全部关闭...
有两个窗体A,B,在A中点击一个Button出现窗体B,在B中点击Button时,怎么让A,B两个窗体全部关闭
展开
8个回答
展开全部
最安全的做法是委托,委托就不需要找对象。比如我想再B窗体里面关闭C窗体,他们之间都找不到对象,对象在A里面实例化的,怎么办?委托就要用上了。
在B里面写委托主体申明,然后赋予事件主体。
public delegete void close;
public static event close close_c;
B的按钮事件中加入:
close_c();
C的窗体启动事件中订阅事件:
B.close_c+=()=>{
Enveroment.Exit(0);
};
在B里面写委托主体申明,然后赋予事件主体。
public delegete void close;
public static event close close_c;
B的按钮事件中加入:
close_c();
C的窗体启动事件中订阅事件:
B.close_c+=()=>{
Enveroment.Exit(0);
};
展开全部
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()
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()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般窗体都是一个对象。
比如一个winform,窗体。打开它的时候就是创建对象的过程,winform duixiang =new winform(a,b).
这个时候如果要关闭这个窗体,必须要得到这个窗体的对象,直接关闭对象,这里的例子就是:duixiang.close()
所以C#关闭别的窗体的关键在于获取这个窗体的对象,可以作为参数传递过来也好,使用全局静态对象应用也好,只要找到了,然后关闭就可以了。
比如一个winform,窗体。打开它的时候就是创建对象的过程,winform duixiang =new winform(a,b).
这个时候如果要关闭这个窗体,必须要得到这个窗体的对象,直接关闭对象,这里的例子就是:duixiang.close()
所以C#关闭别的窗体的关键在于获取这个窗体的对象,可以作为参数传递过来也好,使用全局静态对象应用也好,只要找到了,然后关闭就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()
正如我所想
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()
正如我所想
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是在一个程序内的,只要把窗体归集在全局变量,你想关哪个只要操作变量是最方便的。如果跨程序,则需要钩子 。如果跨线程,需要通道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询