Winform 自定义控件闪烁问题

来源:互联网 发布:linux tcp内核参数 编辑:程序博客网 时间:2024/05/04 13:05

winform 自定义控件闪烁问题极为让人头疼,在网上搜索了很多方法,最后总算是勉强解决,但老实说效果还不是很好。

首先第一种方法:

SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);this.UpdateStyles();

 网上见到的最多的就是这个方法,但基本上没有看到什么效果。

第二种方法:

在自定义控件中添加的:

        protected override CreateParams CreateParams        {            get            {                var parms = base.CreateParams;                parms.Style &= ~0x02000000;  // Turn off WS_CLIPCHILDREN                return parms;            }        }

 在调用自定义控件的窗体内添加的:

        protected override CreateParams CreateParams        {            get            {                CreateParams cp = base.CreateParams;                cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED                return cp;            }        } 

 第二种方法解决了我的问题。不过看起来还是很死板,只能说是勉强解决了。而且因为在调用自定义控件的窗体内添加的方法的关系,窗体上其他控件的重绘多少有点儿问题。后来我把这个方法去掉了,发现值需要在自定义控件内添加方法貌似也没什么问题。

希望以后能有更好的方法解决自定义控件不停闪烁的问题。


<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击