您的足迹:首页 > GDI控件 >彻底解决winform界面刷新闪烁问题

彻底解决winform界面刷新闪烁问题

第一:

设置初始化启用默认双缓冲并提供无闪烁的图形呈现

            this.DoubleBuffered = true;//设置本窗体
            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
            SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲

第二:

底层重绘每次会清除画布,然后再全部重新绘制,这才是导致闪烁最主要的原因。于是重载消息发送函数操作,禁掉这条消息。

    /// <summary>
        /// 捕捉窗体事件 
        /// </summary>
        /// <param name="m"></param>
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x0014) // 禁掉清除背景消息
                return;
         }
第三:

防止闪屏代码

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

本博客所有文章如无特别注明均为原创。作者:cc复制或转载请以超链接形式注明转自 我的博客
原文地址《彻底解决winform界面刷新闪烁问题

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)