在C#中,用GDI+绘在窗体上的图,然后把窗体最小化,再展开所画的图就没有了.为什么? 怎么解决?

我想保留最小化前的图像.

窗体有个事件是专门控制这个的。
选择这个事件"Paint" 进入它,在里面填写相应的你刚才绘制的图像代码就可以了。
最好将绘制的图像放到缓存里面,Paint 事件里面直接调缓存就可以了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-23
那是因为你是在Button—Click事件里写的程序,若在paint事件里写就不会了

在C#中,用GDI+绘在窗体上的图,然后把窗体最小化,再展开所画的图就没...
窗体有个事件是专门控制这个的。选择这个事件"Paint" 进入它,在里面填写相应的你刚才绘制的图像代码就可以了。最好将绘制的图像放到缓存里面,Paint 事件里面直接调缓存就可以了。

关于c#里GDI+绘图问题
把窗体最小化-最大化一下 你画的东西就没了 这就是基于GDI绘图的控件刷新原理 所以正确的做法 你触发了click或者mousemove事件 需要改变一些类内部的状态变量 然后调用invalidate重绘控件 而绘图代码应该正确的写在paint里

VS2005 GDI在pictureBox上画图为什么会消失
第一段代码窗口最小化再还原图像就没有了,第二段代码没有这个问题,因为你直接在窗口上画的内容是不会被保存下来了,窗口一重绘图像自然就没有了。而通过对picturebox添加图片的方法,只要图片存在,picturebox的图像就在

怎样用 c# GDI+ 截取一张图片的一部分,然后再替换另一张图片的一部分...
主要利用:\/\/在指定位置画图 g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height),new System.Drawing.Rectangle(0, 0, image.Width, image.Height),System.Drawing.GraphicsUnit.Pixel);image:你的原图,System.Drawing.Rectangle:位置与长宽,根据自己需要设置!--- ...

用GDI+(C#语言)画图,图形保存问题
你应该每一次把你的图形存起来,然后在paint里面重绘所有图形.用异或不好,在同个位置画两个一样的图形的话就全都没有了

求助C#GDI+绘制的内容清除的问题
把其它要保留的内容,先画到bitmap上。下次画,先把所有内容清除了,再把bitmap里的内容重新画上去。

双缓冲的C#
展开全部 C#双缓冲解释:简单说就是当我们在进行画图操作时,系统并不是直接把内容呈现到屏幕上,而是先在内存中保存,然后一次性把结果输出来,如果没用双缓冲的话,你会发现在画图过程中屏幕会闪的很厉害,因为后台一直在刷新,而如果等用户画完之后再输出就不会出现这种情况,具体的做法,其实也就是先创建一个位图对象...

GDI绘制图形问题
一、消失问题:绘制动作要加在Paint事件中。二、背景问题:不要单独设背景,在绘制时再绘制背景。public Form1(){ InitializeComponent();this.Paint += new PaintEventHandler(Form1_Paint);} void Form1_Paint(object sender, PaintEventArgs e){ Graphics g = panel1.CreateGraphics();Bitmap bmp ...

用GDI+(C#语言)画出的图形如何保存
楼上正解,一般都是在窗体的Form_Load事件中new 一个bitmap,然后设置本窗体的BackImage为那个BitMap,然后Graphics.FromImage() ,你就可一保存那个图片了 ,

C# GDI+绘制动态矩形的问题
GDI...很简单,好久不用了,鼠标按下记录起始坐标,然后鼠标抬起记录结束点,如果想看预览的话就在鼠标移动的时候也画出来,不过GDI+你要先解决闪烁的问题,慢慢来...这东西就要被淘汰了...

相似回答