| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1686 人关注过本帖, 1 人收藏
标题:[已解决]动态创建窗体?
只看楼主 加入收藏
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
收藏(1)
 问题点数:0 回复次数:5 
[已解决]动态创建窗体?
图片附件: 游客没有浏览图片的权限,请 登录注册
我有一个应用程序,在主窗体上单击菜单,动态创建了一个窗体form2,form2窗体上创建有一个按钮,单击form2窗体上的按钮关闭form2窗体。运行时第一次正常,不关闭主窗体,再次运行时出错:

代码:
        public Form form2 = new Form();
        //单击主窗体上菜单事件      
        private void addNewProductionOrderToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //添加窗体            
            form2.Size = new Size(400,330);
            form2.BackColor = Color.SkyBlue;
            form2.Text = "Add Production Order!";
            form2.ControlBox = true;
            //在form2窗体上添加按钮
            Button cancelButton = new Button();
            cancelButton.Text = "Cancel";            
            cancelButton.Size = new Size(100,30);
            cancelButton.Location = new Point(200,237);
            form2.Controls.Add(cancelButton);
            cancelButton.Click+=new EventHandler(cancelButton_Click);
            
            form2.Show();            
        }
        //单击form2窗体上按钮事件
        private void cancelButton_Click(object sender, EventArgs e)
        {            
            form2.Close();
        }

[[it] 本帖最后由 wwx024 于 2008-10-29 10:03 编辑 [/it]]
搜索更多相关主题的帖子: 窗体 动态 
2008-10-23 19:24
小仙
Rank: 7Rank: 7Rank: 7
来 自:光之谷
等 级:贵宾
威 望:39
帖 子:1812
专家分:1
注 册:2008-8-8
收藏
得分:0 
除了 MDI窗体和模式对话框,其他的窗体在close之后就释放掉了,也就是说普通的窗体close还连带着dispose(),所以关闭了自然再打不开了,除非再new个。呃。。貌似我想写个这个专题的。。。


仁者乐膳,智者乐睡。我都爱~
2008-10-23 20:27
wwx024
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2008-6-15
收藏
得分:0 
[bo][un]小仙[/un] 在 2008-10-23 20:27 的发言:[/bo]

除了 MDI窗体和模式对话框,其他的窗体在close之后就释放掉了,也就是说普通的窗体close还连带着dispose(),所以关闭了自然再打不开了,除非再new个。呃。。貌似我想写个这个专题的。。。


谢谢!
通过MSDN上的例子问题解决了。
2008-10-23 20:45
lanfeng8642
Rank: 1
来 自:广东珠海
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-10-19
收藏
得分:0 
这个我也不是很懂啊,很想有详细的介绍
2008-10-23 22:02
小仙
Rank: 7Rank: 7Rank: 7
来 自:光之谷
等 级:贵宾
威 望:39
帖 子:1812
专家分:1
注 册:2008-8-8
收藏
得分:0 
改天有空我抽个专题出来。。。不过想有空很是奢侈的事啊。


仁者乐膳,智者乐睡。我都爱~
2008-10-23 22:11
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
public Form form2 = new Form();  在你整个运行周期内,仅仅开头执行一次,新建了一个名为form2的Form对象。
第一次执行菜单时,addNewProductionOrderToolStripMenuItem_Click将form2显示出来。当单击form2上的按钮时,
form2被关闭。
第二次执行菜单时,名为form2的变量仍然是对之前已关闭窗体的引用,窗体已关闭,相应的资源都释放了,但引用并没有被释放。addNewProductionOrderToolStripMenuItem此时再运行,相当于对一个释放了资源的窗体进行操作,当然就会出错

铲铲是也
2008-10-24 19:30
快速回复:[已解决]动态创建窗体?
数据加载中...
 
   



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

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