在C#中老是闪烁,双缓冲怎么使用啊,听说可以解决
由于控件比较多,在同一个panel中,请指教. --------------------编程问答-------------------- 对你的Form或者Panel调用SetStyle方法,SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);//防止窗口跳动
SetStyle(ControlStyles.DoubleBuffer, true); //防止控件跳动 --------------------编程问答--------------------
--------------------编程问答-------------------- 首先,窗体本身有一个DoubleBuffered属性,改为true;
//设置窗体Style
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyles();
其次,在程序中写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,学习 --------------------编程问答--------------------
朋友,我按照这样设置后没有效果呢? 能再详细点吗? --------------------编程问答--------------------
请问 SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
写在哪里啊? --------------------编程问答--------------------
写在Form_Load事件里, --------------------编程问答-------------------- 我就是写在LOAD中,但还是不行,还是要狂闪. --------------------编程问答-------------------- 我写在Form_Load中,还是狂闪,是不是我没有搞对,或者还有其他办法呢? --------------------编程问答-------------------- mark --------------------编程问答-------------------- 谁能说详细点吗,我很菜,很希望能够学习解决方法.谢谢
补充:.NET技术 , C#