C#中自绘图形的重绘

发布时间:2024-05-13 07:20 发布:上海旅游网

问题描述:

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

问题解答:

简单的可以在窗体的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);//绘制一个矩形区域

热点新闻