C#中自绘图形的重绘

我用C#编写了一个windows窗体应用程序,设计了一个功能是通过点击一个按钮来调用绘图函数生成曲线图形,但是当移动窗体,或者改变窗体大小,切换到其他窗口再回到我做的程序窗口时曲线图形就会消失,请问各位高手,如何才能进行图形的重绘,如果是用onpaint(),因为我是需要通过点击一个按钮来生成图形,而且生成图形的方法需要传入许多参数,这些该如何处理,
非常感谢.

第1个回答  推荐于2016-12-02
简单的可以在窗体的Activated事件中,重新调用绘图函数。

如果参数很多,太麻烦的话,可以这样。
绘图的时候,把图形绘制到picture中,把picture放在窗体上,这样图形始终在内存中保留。无论如何切换窗口,图形都不会消失。
具体绘图方法:
引用如下命名空间:
using System.Drawing;
using System.Drawing.Imaging;
申明变量:
private Image theImage;//要绘图的图片对象
private Graphics ig; //在图片上绘图的Graphics对象
private System.Windows.Forms.PictureBox MyPicBox;//窗体上的picturebox控件
theImage=new Bitmap(600,800);//宽,高
ig=Graphics.FromImage(theImage);
ig.Clear(Color.White); //底色为白色
MyPicBox.Image=theImage;//将绘制的image放在picturebox中
Pen drawPen = new Pen ( Color . Blue , 2 ) ; //画笔工具
ig.DrawRectangle(drawPen,20,20,40,40);//绘制一个矩形区域本回答被提问者采纳

C#中自绘图形的重绘
简单的可以在窗体的Activated事件中,重新调用绘图函数。如果参数很多,太麻烦的话,可以这样。绘图的时候,把图形绘制到picture中,把picture放在窗体上,这样图形始终在内存中保留。无论如何切换窗口,图形都不会消失。具体绘图方法:引用如下命名空间:using System.Drawing;using System.Drawing.Imaging;申明...

C#画图怎么不被刷新
画好的图形之所以消失,是因为每当对窗体进行操作的时候,都会触发系统消息,通知程序重画所有必要的窗体,具体的说,消息到达后,各个部件或控件自己画自己的,因为你画的图形不是属于控件本身onPaint()事件里,,所以画完之后,你画的图像就没了。所以,要想保持自绘的图形不会消失,只有自己把图形数据...

c#绘图中关于清除自己绘制的部分图形
用窗体的backgroundImage属性设置背景,画线的代码不要放在paint事件里面,这样要擦除的话只要用this.invalidate()就可以,如果你把画线代码放到Paint事件里面的话那是擦不掉的,背景不用担心,它会自动留着的。在paint事件之外画线必须先获取graphics:Graphics g=Graphics.FormHWnd(this.Handle);g.Draw...

双缓冲原理在awt和swing中实现消除闪烁的方法
首先我们来解答第一个问题 我们在屏幕上自绘图形或者是添加图片都是要通过所在画布的重绘来实现的 因此闪烁的出现必然与重绘机制有着一些关联 在awt中对于窗体画布的重绘其条用顺序是repaint() —>update()—>paint();我们来看看update()的源码 Java代码 \/** * Updates the container Th...

VC自绘图形怎么保存成BMP或者JPG格式?
需要把设备相关位图存成设备无关位图如果自己写代码还是比较麻烦。如果位图是256色还要保存调色板,有本数字图像处理的VC++的书里面有这些方面定义好的类库。用VC.NET支持Gdiplus,可以用CImage类,比较简单。

在OFFICE里面的自绘图形能独立保存不?
存成独立文件以后就等于合成一张图片了 好像没什么办法能改了 要么你可以试着合成jpg图片 然后用PS再一起合成一下

易语言文本框自绘教程
5. **编写自绘代码**:在重绘事件中,使用易语言的图形绘制函数绘制文本框的各部分。例如,先绘制背景,然后绘制边框,最后在指定位置绘制文本。6. **处理交互**:根据需要处理文本框的交互事件,如鼠标点击、键盘输入等,确保自绘文本框的行为符合预期。7. **测试与优化**:在不同分辨率和环境下测试...

ai怎么填充自己绘制的图形ai怎么填充自己绘制的图形
1\/7 打开AI,绘制需要的图案。我绘制了一颗星星。2\/7 打开对象-图案-建立。3\/7 跳出窗口选择确定。4\/7 设置名称尺寸等参数。5\/7 设置完成后,点击完成即可。图案就会被收入填充选择中。6\/7 打开填充,找到刚刚保存的图案。7\/7 点击填充,就完成了填充操作。换个图形也可以随意填充了。

如何用vc++实现鼠标拖动,放大缩小自绘的图形?
你可以弄两个变量 在相应mousemove里面 保存鼠标的x坐标 等鼠标滑动后 用其中一个保存新的x坐标 然后比较 如果旧的x比新的x小 就认为是向右滑动 反之亦然 再说说转动 要实现这个就可以用directx编程 利用旋转矩阵使物体旋转

word中插入自绘图形默认是浮动还是嵌入式word自绘图形怎么设置_百度...
在Microsoft Word中,插入自绘图形(如形状、图片等)时,默认设置为嵌入式。这意味着图形将嵌入到文本行内,随着文本移动。不过,您可以根据需求更改图形的布局方式。以下是设置图形布局方式的步骤:1. 在Word文档中,插入您想要设置的图形。2. 选择要设置的图形。3. 单击图形,使其周围出现一个浮动的...

相似回答