惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

博客园 - 林子

关于IT概念的一些思考 UML相关工具一览(截止2012年10月)(ZT) 业务分析师在敏捷项目中的作用(ZT) 对业务建模的思考——为什么要业务建模 (转) 如何管理你的程序员(ZT) 引入敏捷是否需要颠覆现有技术管理框架?(ZT) 时间管理(Time Management)(ZT) 分析:商业智能中外差距到底有多大(ZT) SQL Server 索引基础知识 主键与聚集索引(ZT) 无依赖Office资源的导入导出 sqlite使用手册(ZT) 2008新的一年到来了! .net2.0中SqlBulkCopy批量复制数据出错原因分析! 用Dundas制作盒须图BoxPlot(盒式图,箱形图) 101个微软提供的Visual Studio 2005示例(ZT) .NET中完成FTP各功能操作 Dundas Win Chart 5.5.0的破解... Visual Studio 2005(C#)中只允许一个实例运行的一种方法 Win窗体程序中的DataGridView未提供的DataView存在的功能!(ZT)
在窗体的Load时怎么退出窗体
林子 · 2007-01-10 · via 博客园 - 林子

打开某窗体frm1,此窗体打开的条件是必须存在某个值,所以在打开此窗体时,需要在OnLoad事件中
打开另外一窗体frm2进行选择。

现流程如下:
1.在frm2中选择到值,直接把值传入frm1使用,没有什么问题。
2.在frm2中未选择到值,需要在关闭frm2的同事,也在关闭frm1,因为frm1执行的条件是必须存在此值。

上述问题2中的用普通的this.close方法不能实现,错误信息如下:
this.Close() 或 this.Dispose()时 都会出错:
"执行 CreateHandle() 时无法调用值 Dispose()"
"执行 CreateHandle() 时无法调用值 Close()"

因为在OnLoad事件中,当前窗体的句柄Handle还没有创建完成
所以不能直接进行关闭操作,变通的实现方法如下:

protected override void OnVisibleChanged(EventArgs e)
{
    base.OnVisibleChanged(e);
    if (条件)
        this.Close();
}
也可以重写 OnShown 或者在 Shown 事件响应中写。