C# PictureBox中的绘图闪烁的问题

在form窗体上放置一个picturebox控件,大小超出form的边界并在里面绘制了一组网格,采用鼠标点击拖动来移动picturebox在form中的位置,当将超出form的部分移动到屏幕中时,要使其保持完整的网格线就要对picturebox上的网格进行不停的重绘,可是这样图像就会一直闪烁。网上有人说用双缓冲绘图可以解决问题,可是小弟现在是刚开始学习这个,实在是不知道双缓冲该怎么用,急需有人帮忙指点一下,最好是给一个简单的实例什么的。等待中……
http://tech.sina.com.cn/s/2006-09-27/16481162646.shtml
看了这里面的讲解,非常明白,而且问题已经解决了,不是什么属性设置的问题,代码是自己写的,放在自己创建的绘图函数里面。 不过还是要谢谢各位的回答 ,分送给第一个吧

双缓冲就是在构造函数中加入
this.DoubleBuffer=true;

一般可以用属性对话框设置,DoubleBuffer就是了.
你的绘制代码在哪里,就设置在哪个控件上.
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-21
使用双缓冲。
具体做法:在构造函数中加入:
This.SetStyle(controlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer |
Or ControlStyles.UserPaint, True)
建议你查看MSDN,有很详细的解说。

C#pictureBox控件中绘制动态图形时闪烁怎么解决
this.DoubleBuffer=true;一般可以用属性对话框设置,DoubleBuffer就是了.你的绘制代码在哪里,就设置在哪个控件上.

C# PictureBox中的绘图闪烁的问题
开启双缓存是非常简单的,任何Control都有DoubleBuffered属性,你只要在窗体类的构造里加入this.DoubleBuffered=true; 就可以开启了

请教C# 高手 关于 画图 刷新 的问题
不要直接在窗体上绘制,这样效果不好,最好是绘制在PictureBox上,尽量较少绘制次数闪烁效果会好很多,代码如下 10*10个格 100毫秒的速度 无闪烁 PictureBox pictureBox;Rectangle rect = new Rectangle(0, 0, 30, 30);Bitmap bit = new Bitmap(300, 300);int recs = 1;private void button1_...

C# WinForm 鼠标移动PictureBox控件的问题
LZ你好,出现阴影或闪烁现象是由控件重绘造成的。控件改变自身大小、位置,或者改变显示状态,都会使控件重绘,是否有良好的用户体验是由硬件性能和是否对重绘进行了优化来决定的。优化建议:使用双缓冲技术。即把窗体(Form)的DoubleBuffered的值设为True;双缓冲技术的原理是:先将图像绘制到内存中的一块画布...

C#中如何实现一个pictureBox中2张图片的切换,就是一闪一闪的,然后怎 ...
两个图片重叠放在同一位置,然后设置一个计时器控件,每隔多长时间,一个属性隐藏,另外一个显示就可以了。

C#中绘图怎么避免闪烁
我不知道你的绘图原理是啥-A- pictureBox的话 你的画布应该是一个Bitmap而不是pictureBox本身 这样本身就是一种双缓冲效果了 drawImage当然不是覆盖 你又没clear- -

c#实现实时曲线的绘制,防止频闪
建议:PaintEventArgs中有ClipRectangle属性,是用来描述需要重绘的位置大小。只需要更新这个部分就可以了。其实windows中的双缓冲就是把背景生成图片在刷新到界面上,你现在做的和双缓冲没啥区别了。另外你可以把panel换成picturebox尝试一下。

c#如何让摄像取景框不闪
不能写成定时绘制取景框 这样闪是必然的 如果你的摄像内容是在PICTUREBOX里的话 可以把绘制的代码卸载picturebox_Paint事件里 private void pcbCapPhoto_Paint(object sender,xxxEventArgs e){ e.Graphics.Rectangle(xxx);} 类似这样的 应该是每次显示图片的时候绘制上去而不是定时绘制 ...

用C#绘制类似心电图的程序,我首先画了个表格,然后就是在表格上画随时 ...
闪烁的问题不需要修改绘画策略也可以解决。你只要在你的Graphics所属的控件(在你这个例子中,也就是你的this,我猜是你的窗体吧)的构造函数上,加入以下几句话就可以。亲测绝对有效。。\/\/\/ \/\/\/ 构造函数 \/\/\/ public Form1() { InitializeComponent(); SetStyle( Control...

c# winfrom中pictureBox中不断显示图片导致窗口假死。
应该是你的线程委托有问题。给你一个示例:private bool start = true; private void Test(Action<Bitmap> e) { while (true && start) { var random = new Random().Next(); var code = (char)('A' + (char)(random % 26)); var bytes = CrateBitmap(code.T...

相似回答