C# Winform继承窗体打开设计器白屏的一例解决方法

环境VS2017 15.5.4,Win10
开发过程中,发现一些窗体打开设计器会卡死白屏,另外有一些不会,(两者运行时正常),最小化vs后甚至能把工具箱连带搞黑,严重影响开发效率,经过一天多的对比研究,终于解决,
猜测可能是VS的BUG,多年前做VC程序时遇到BUG,向微软提交,微软开发人员也会推诿,这里分享一下解决办法,以免大家踩坑。

 

 


重现方法:

1、父窗体类Form1:Form,子窗体类Form2:Form1
2、Form1里加入代码,编译

protected override CreateParams CreateParams
        {
            get
            {
                const int CS_NOCLOSE = 0x200;
                CreateParams cp = base.CreateParams;
                cp.ClassStyle = cp.ClassStyle | CS_NOCLOSE;
                cp.ExStyle |= 0x02000000;
                return cp;
            }

        }

 


3、打开子窗体设计器时,子窗体上不管摆什么控件,子窗体都是白屏,用鼠标点击一下有时候能恢复,如果项目中打开窗体多了不能恢复,如果这时候最小化vs,会如上黑屏,影响心情。
解决方法:
在子窗体上拖一个Panel,设置为Fill(注意不能留一点空白,Form2不要设置Padding之类的,只要设置一点就会白屏。),然后所有的新控件都摆在这个Panel上吧。
然后可以解决问题了。测试代码在 QQ群:616945527,博客相关资源,Test(继承窗体白屏),

4、另一种解决办法

 

原创内容,转载请保留出处
http://www.cnblogs.com/zhaogaojian/p/8440473.html 

posted @ 2018-02-11 09:28  zhaogaojian  阅读(1857)  评论(0编辑  收藏  举报