标题:请教一个Form.Close的问题
取消只看楼主
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
结帖率:33.33%
已结贴  问题点数:10 回复次数:5 
请教一个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
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
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
请高人指导一下呀

日有所思,夜有所梦
2011-03-20 14:34
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
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
得分:0 
唉,还没满意答案系统就要求我结贴!!!!!!!!!
郁闷。。。。。。。。。

日有所思,夜有所梦
2011-03-21 12:05



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




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

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