当前位置:编程学习 > C#/ASP.NET >>

在C#中老是闪烁,双缓冲怎么使用啊,听说可以解决

由于控件比较多,在同一个panel中,请指教. --------------------编程问答-------------------- 对你的Form或者Panel调用SetStyle方法,

SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);//防止窗口跳动
SetStyle(ControlStyles.DoubleBuffer, true); //防止控件跳动  --------------------编程问答--------------------

//设置窗体Style
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyles();
--------------------编程问答-------------------- 首先,窗体本身有一个DoubleBuffered属性,改为true;
其次,在程序中写SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
最后:
1.private Bitmap bmap;
2.bmap = new Bitmap(548, 560); //生成一个548X560大小的位图
3.using (Graphics graphics = Graphics.FromImage(bmap)) //在位图上画画
            {
             用画笔,画刷开始画图,
             }
4.在paint处理函数中加入如下语句:
            Graphics g = e.Graphics;            
            g.DrawImageUnscaled(bmap, 12, 12);//把位图复制到窗体的Graphics上。 --------------------编程问答-------------------- 我刚用此法处理了闪烁问题,希望对你有所帮助:) --------------------编程问答-------------------- mark,学习 --------------------编程问答--------------------
引用 2 楼 wangyong0921 的回复:
C# code

//设置窗体Style
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyle……


朋友,我按照这样设置后没有效果呢? 能再详细点吗? --------------------编程问答--------------------
引用 3 楼 dcbafei 的回复:
首先,窗体本身有一个DoubleBuffered属性,改为true;
其次,在程序中写SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
最后:
1.private Bitmap bmap;
2.bmap = new Bitmap(548, 560); //生成一个548X560大小的位图
3.using (Graphics gra……


请问 SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
写在哪里啊? --------------------编程问答--------------------
引用 7 楼 adammao29 的回复:
引用 3 楼 dcbafei 的回复:

首先,窗体本身有一个DoubleBuffered属性,改为true;
其次,在程序中写SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
最后:
1.private Bitmap bmap;
2.bmap = new Bitmap(548, 560); //生成一个548X560大小的位图
……


写在Form_Load事件里, --------------------编程问答-------------------- 我就是写在LOAD中,但还是不行,还是要狂闪. --------------------编程问答-------------------- 我写在Form_Load中,还是狂闪,是不是我没有搞对,或者还有其他办法呢? --------------------编程问答-------------------- mark --------------------编程问答-------------------- 谁能说详细点吗,我很菜,很希望能够学习解决方法.谢谢
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,