欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Winform 自定义控件闪烁问题

程序员文章站 2022-03-04 11:11:14
...

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;

            }
        } 

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

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

转载于:https://www.cnblogs.com/rogation/archive/2013/05/28/3104024.html