作者: tinyworld
查看: 747|回复: 0

请问为何引用cskin后,winform打开不正常了?

[复制链接]
tinyworld 发表于 2020-10-27 17:48:40 | 显示全部楼层 |阅读模式
查看: 747|回复: 0
使用下面的代码打开子窗口,一切正常:

            //打开单例窗口
            Form test = Application.OpenForms[wn];  //查找是否打开过窗体  
            if ((test == null) || (test.IsDisposed)) //如果没有打开过
            {
                Assembly assembly = Assembly.GetExecutingAssembly();
                Form F;
                F = assembly.CreateInstance("main." + wn) as Form;   
                F.Owner = this;
                F.Show();   //打开子窗体
            }
            else
            {
                test.Activate(); //如果已经打开过就让其获得焦点  
                test.WindowState = FormWindowState.Normal;//使Form恢复正常窗体大小
            }


但是我把子窗口继承了cskin后,使用上面的代码打开子窗口,如果子窗口如Form1 load判断没记录,写了一个最简单的Close(); 正常是关闭窗体了,但是只要子窗体继承cskin,并且碰到Close();这个关闭窗口的代码,那么会报错,提示无法打开已释放的对象?

但是:如果我把子窗口如Form1,去掉那行Close();关闭窗口的代码,给它加上一个自动倒计时1秒自动关闭(到了时间后依然执行的还是Close)它就不会报错,似乎是要让子窗口展示出来看一下,才可以关闭……

这个怎么破
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-3-29 03:58, Processed in 0.554579 second(s), 32 queries , Gzip On.

快速回复 返回顶部 返回列表