c# winform 关于绘图的问题,如何定义一个Graphics g作为全局变量

2024-11-07 05:42:00
推荐回答(4个)
回答(1):

你这样试试 我的就是这样做的。新建一个Bitmap,bmp为全局变量,然后再画
bmp = new Bitmap(this.Width, this.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
pictureBox1.Image = bmp;
}
只要用到g的时候 就 这样写
using (Graphics g = Graphics.FromImage(bmp))
{
中间是你的代码
}
就可以了 。

回答(2):

  不用这么麻烦定义全局的Graphics,一般也没有这么做的
  你的pictureBox已经是全局变量,可以这样获得Graphics对象
  Graphics g =Graphics .FromHandle(picturebox1.Handle);

回答(3):

你试试把这个定义成个static静态的变量 ,Graphics每次好像在页面稍微一改动,就从新加载了,在Onpaint里面重绘控件

回答(4):

使用单件模式,定义一个属性,在第一次使用的时候创建,之后直接使用这个graphics
Graohics _g; //不要使用_g,使用g绘制
Graphics g
{
get

{
lock(this)

{

if(_g != null)

{
return _g;

}
lock(this)

{
_g = picturebox1.CreateGraphics();
return _g;

}
}

}

}