您的位置:首页 > 编程语言 > C#

winform控件显示及闪烁问题

2013-12-12 03:29 483 查看
最近一直用winform做一个小程序,用到了很多自定义控件以及窗体,但是在程序加载时候,控件总是先闪出背景,然后才加载背景。百度了很多方法,基本都是在自定义控件里用双缓冲,但是问题依旧存在,经过一段时间的探索,发现了问题所在,在程序中用到了很多panel并且设置了背景图片,这是导致问题的原因,winform自带的panel不具有双缓冲功能,因此可自定义panel,然后在在构造函数里加上以下代码:

            ///解决闪的问题

            this.SetStyle(

                ControlStyles.AllPaintingInWmPaint |

                ControlStyles.OptimizedDoubleBuffer |

                ControlStyles.ResizeRedraw |

                ControlStyles.Selectable |

                ControlStyles.DoubleBuffer |

                ControlStyles.SupportsTransparentBackColor |

                ControlStyles.UserPaint, true);

            this.SetStyle(ControlStyles.Opaque, false);

            base.BackColor = Color.Transparent;
            this.UpdateStyles();

仅供需要的童鞋参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息