VS2005 GDI在pictureBox上画图为什么会消失
打开运行点击按钮,pictureBox上显示图形,但是当该窗体隐藏后再打开,图形就会消失?这是为什么?...
打开运行点击按钮,pictureBox上显示图形,但是当该窗体隐藏后再打开,图形就会消失?这是为什么?
展开
4个回答
展开全部
在窗体上添加picturebox和两个button,添加button的点击事件,执行下面的代码你就可以看到差别了,第一段代码窗口最小化再还原图像就没有了,第二段代码没有这个问题,因为你直接在窗口上画的内容是不会被保存下来了,窗口一重绘图像自然就没有了。而通过对picturebox添加图片的方法,只要图片存在,picturebox的图像就在
private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.pictureBox1.CreateGraphics();
g.Clear(Color.Black);
g.DrawRectangle(new Pen(Color.Red),10,10,40,20);
g.Dispose();
}
private void button2_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(this.pictureBox1.ClientRectangle.Width, this.pictureBox1.ClientRectangle.Height);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Black);
g.DrawRectangle(new Pen(Color.Red), 10, 10, 40, 20);
g.Dispose();
this.pictureBox1.Image = bmp;
private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.pictureBox1.CreateGraphics();
g.Clear(Color.Black);
g.DrawRectangle(new Pen(Color.Red),10,10,40,20);
g.Dispose();
}
private void button2_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(this.pictureBox1.ClientRectangle.Width, this.pictureBox1.ClientRectangle.Height);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Black);
g.DrawRectangle(new Pen(Color.Red), 10, 10, 40, 20);
g.Dispose();
this.pictureBox1.Image = bmp;
展开全部
可以实现 ,不过你的想法错了。不是在pictruebox控件上画图 ,而是在pictruebox中的图片里画图 ,你只要你把图画到了图片上,那么pictruebox显示就会是你画过的图了。 当然 ,你要将pictruebox的image属性重新指定以下就可以了。不然的话,你图片画了,但pictruebox没刷新,那么就看不到效果了。具体操作我们可以交流。
希望可以帮到你.!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你试试重写窗体的OnPaint函数,把在Picturebox上画图的代码都贴到这个函数里,就可以了。
因为每次窗体隐藏再打开,都会擦除原先的图形,只有重写OnPaint函数,才能不断引发图形的重绘事件。
因为每次窗体隐藏再打开,都会擦除原先的图形,只有重写OnPaint函数,才能不断引发图形的重绘事件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c# GDI 画图 在picture上面 DrawString();方法画图但是 我设定picture的可以实现 ,不过你的想法错了。不是在pictruebox控件上画图 ,而是在pictrue
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询