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

有两个窗体A,B,在A中点击一个Button出现窗体B,在B中点击Button时,怎么让A,B两个窗体全部关闭... 有两个窗体A,B,在A中点击一个Button出现窗体B,在B中点击Button时,怎么让A,B两个窗体全部关闭 展开
 我来答
创作者zUzVB1Sl31
2020-05-25 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式