您好我在用c#做软件,要用画图功能,但是图像保持不了,听说用onPaint方法可以保持图像,怎么用的啊
5个回答
展开全部
将数据显示分离开来,根据相应的数据在OnPaint里进行图像绘制。
例如自己的窗体类里:
int[,] GameMap=new GameMap[10,10]; //初始化写在其他地方。
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
//根据数据绘图
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
g.DrawRectangle(Pens.Black,i*40,j*40,40,40);
}
然后,一般情况下最大最小化窗体之类的操作就会重绘窗体,有时候更改数据后要立即重绘的话,调用Invalidate()方法,差不多就这样。
例如自己的窗体类里:
int[,] GameMap=new GameMap[10,10]; //初始化写在其他地方。
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
//根据数据绘图
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
g.DrawRectangle(Pens.Black,i*40,j*40,40,40);
}
然后,一般情况下最大最小化窗体之类的操作就会重绘窗体,有时候更改数据后要立即重绘的话,调用Invalidate()方法,差不多就这样。
来自:求助得到的回答
展开全部
Bitmap bitmap = new Bitmap(@"C;\11.bmp");
Graphics g = Graphics.FromImage(bitmap);
g.DrawString("我是一个中国人", new Font("宋体", 12), Brushes.Red, 5, 5);
g.Dispose();
bitmap.Save(@"C:\22.bmp");
Graphics g = Graphics.FromImage(bitmap);
g.DrawString("我是一个中国人", new Font("宋体", 12), Brushes.Red, 5, 5);
g.Dispose();
bitmap.Save(@"C:\22.bmp");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来跟你交流吧。 我是认真的,你的保存是什么意思?是在界面上能重画出来,还是把控件的界面保存?那是不同的。如果把控件界面保存,很简单,有个Image属性,可以强转转换为Bitmap类型保存到文件,同时能这样来改变里面的像素或别的。这就是直接修改内存法。不是用CreateGraphics()来画。
给我分吧,你没有选择的,必须给我分,因为我能一针见血的给你解决问题,呵呵
给我分吧,你没有选择的,必须给我分,因为我能一针见血的给你解决问题,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Graphics类中的Flush()吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-05-11
展开全部
onPaint是个事件,建议你把图片保存到本地……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询