CSkin博客

标题: 请问为何引用cskin后,winform打开不正常了? [打印本页]

作者: tinyworld    时间: 2020-10-27 17:48
标题: 请问为何引用cskin后,winform打开不正常了?
使用下面的代码打开子窗口,一切正常:

            //打开单例窗口
            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博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2