标题:请教一个Form.Close的问题
只看楼主
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
结帖率:33.33%
已结贴  问题点数:10 回复次数:10 
请教一个Form.Close的问题
程序代码:
...
void Form1_Load(..)
{
    Func1();
    Func2();
    Func3();
}

void Func1()
{
    if (...) this.Close();
    ...
}

void Func2()
{
    if (...) this.Close();
    ...
}

void Func3()
{
    if (...) this.Close();
    ...
}
程序调用Close()方法后,并不会马上关闭窗体,而是继续运行完后面的代码后才关闭窗体。
比如:Func1()中调用了Close(),但是程序还会继续往后运行,Func2、Func3也执行了一遍。
我想在调用Close()后就关闭窗体,不要运行后面的代码了,怎么实现呀??

[ 本帖最后由 zhp223 于 2011-3-19 17:51 编辑 ]
2011-03-18 20:51
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:2 
用这个应该可以:System.Environment.Exit(0);
2011-03-19 09:07
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
得分:1 
不运行后面的代码,就Return !
2011-03-19 12:42
Jian_X
Rank: 4
等 级:业余侠客
威 望:1
帖 子:51
专家分:212
注 册:2009-10-23
得分:1 
回复 2楼 hainandgm
二楼正确,在clos3();后加return;就可以了
2011-03-19 15:50
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
回复 3楼 one_june
不可以呀
void Func1()
{
    if (...) { this.Close(); return; }
    ...
}
Close后return只是退出了Func1,Func2、Func3还是会运行

日有所思,夜有所梦
2011-03-19 17:32
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
回复 2楼 hainandgm
不好意思,问题描述有点错。
Form1是由另一个Form弹出的,只关闭Form1窗体,不退出应用程序,。
所以不能用System.Environment.Exit(0);

日有所思,夜有所梦
2011-03-19 17:50
zhangjibo
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:24
专家分:39
注 册:2011-3-6
得分:1 
this.Close();关闭当前窗口

没有做不到,只有想不到、、、、、、、、、、、、
2011-03-19 22:31
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
请高人指导一下呀

日有所思,夜有所梦
2011-03-20 14:34
malgerz
Rank: 2
等 级:论坛游民
帖 子:9
专家分:43
注 册:2011-3-20
得分:5 
用个变量来标识是否让窗体退出吧,我之前也遇过这个问题,close后还会继续下面的代码,因为close是在另一个事件发生的,所以会这样,用个变量标识一下就可以了
2011-03-20 14:57
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
回复 9楼 malgerz
Form有一个变量IsDisposed是标识窗体是否已释放资源。
void Form1_Load(..)
{
    Func1();
    if (this.IsDisposed) return;
    Func2();
    if (this.IsDisposed) return;
    Func3();
    if (this.IsDisposed) return;
    ....
}
但是感觉这样写不爽,我就纳闷,为什么Close()后不立即退出程序呢。

日有所思,夜有所梦
2011-03-20 15:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-334090-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085512 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved