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

C#解决动态显示控件闪烁,使Windows Forms启用双缓冲于所有窗体以及其子控件就不闪了。

程序员文章站 2022-06-10 10:49:05
...

 在SDK头文件中有这样一个Windows样式:WS_EX_COMPOSITED,这个样式可使Windows Forms启用双缓冲于所有窗体以及其子控件。

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

 

 

网上说的不对。

        public Form1()
        {
            InitializeComponent();
            base.SetStyle(
            ControlStyles.OptimizedDoubleBuffer
            | ControlStyles.ResizeRedraw
            | ControlStyles.Selectable
            | ControlStyles.AllPaintingInWmPaint // 禁止擦除背景.
            | ControlStyles.UserPaint
            | ControlStyles.SupportsTransparentBackColor
            | ControlStyles.DoubleBuffer  // 双缓冲
            ,true);
        }

 

 

相关标签: C#