PictureBox画图失焦点后图像消失---Why? Graphics dc = this.pictureBox1.CreateGraphics();然后我用dc画了很多线条之类的。画完后,我将该Form最小化或者点击其他地方让这个窗体失去焦点。再打开后发现画的图像都不见了。为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你只是在那刻画了,并没有将信息记录下来,下次paint时再次绘制小化或者点击其他地方让这个窗体失去焦点,再打开,或是移动下窗口 都会触发再次paint 那该如何解决呢?让他可以一直显示在form窗体上 把要画的代码写道ONPAINT事件里面就好了 Graphics dc = e.Graphics 你的方法存在漏洞,漏了WINDOWS的窗口重绘机制。你只要在pictureBox1的paint事件处理函数中调用你的画图函数就可以解决了。 我在pictureBox1_Paint调用画图函数,但是还是无法显示阿,只是很快的显示了一下阿。如果使用Refresh的话,那么屏幕会一直得晃动。 还有一种方法,就是先动态生成一幅和PictureBox大小一样的位图,然后从这幅位图上生成一个Graphics 对象,然后画你想画的。最后把这幅位图作为PictureBox的Image属性,这样也能达到上面的目的。当然你在PictureBox的Resize事件处理程序中也要执行同样的代码 int x = 0 int y = 0 int width = pictureBox1.Width; int height = pictureBox1.Height; Bitmap bmp = new Bitmap(width,height); Graphics g = Graphics.FromImage(bmp); g.DrawRectangle(new Pen(Color.Gray,1),x,y,width - 1,height - 1); pictureBox1Image = bmp; PictureBox是一个图画框,已经封装好了,你是不是应该在放PictureBox的窗体的ONPAINT里面重新画一下,或者宣布客户区无效,让WINDOWS自动重画,以前做过,现在忘了,大体思路应该没错吧 呵呵,需要将之前画的东东信息记录下来,onpaint里根据信息重新绘制 Samen168(卖女孩的小火柴) 说的能不能具体点,我用tangxuehua(netfocus) 的方法倒是挺容易实现的,谢谢。我现在想知道不用图像应该如何解决呢/??上面大家说得太概,能不能详细点.谢谢 UTF-8乱码输出,冰天雪地跪求答案 WPF浏览器应用程序部署后,别人的电脑可以访问,而我却访问不了? C#如果将桌面上的其他窗口标题改掉? 那位哥哥姐姐 帮忙下呀!!!好郁闷!异常类!! VS2003 / VS2005 里如何设置窗体的 GridSize 默认大小 我做的发送email的问题 (WindowForm)如何实现拖放功能? 基于Socket或Tcp的文件传输 C# 加载dll问题----------------在线等 C#中如何使用DLL中的功能函数?我现在要用到下面的API,但是不知在C#中如何写, 在vs2005中如何生成 注释web页 如何开发制作CDKEY程序
小化或者点击其他地方让这个窗体失去焦点,再打开,或是移动下窗口 都会触发再次paint
你只要在pictureBox1的paint事件处理函数中调用你的画图函数就可以解决了。
最后把这幅位图作为PictureBox的Image属性,这样也能达到上面的目的。
当然你在PictureBox的Resize事件处理程序中也要执行同样的代码
int y = 0
int width = pictureBox1.Width;
int height = pictureBox1.Height; Bitmap bmp = new Bitmap(width,height);
Graphics g = Graphics.FromImage(bmp);
g.DrawRectangle(new Pen(Color.Gray,1),x,y,width - 1,height - 1);
pictureBox1Image = bmp;