关于GDI绘图(新手)

b87936260 2010-10-17 10:34:56
我在pannel每次鼠标click就画个圆,可是最小化form或者被其他页面盖住,在显示这个form时候图就看不见了,但还是存在的,请问是什么原因啊??
private void pGame_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = this.pGame.CreateGraphics();
g.DrawImage(Resources.blue, x1, y1, 36, 36);
}
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lrh_079 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]

Paint事件里面重新绘制
先画到 bitmap中,在paint事件中,画bitmap
[/Quote]
正解。点击事件只绘制一次,当窗体最小化又恢复时将进行重绘。在Paint事件里才能保证显示
HaveOneDream 2010-10-22
  • 打赏
  • 举报
回复
1,声明一矩形数组
2,private void pGame_MouseClick(object sender, MouseEventArgs e)
{
将鼠标点击要画的圆坐标放入矩形数组
}
3
protected override void OnPaint(PaintEventArgs e)
{
循环数据画圆
(利用双缓存技术或者楼上说的先在图片上图再贴到窗体上)
}
白雪公猪905 2010-10-21
  • 打赏
  • 举报
回复
在你mouse_up事件里吧圆都画到bitmap上,在paint事件里 去e.graphic.drawiamge(bitmap,0,0)
csz_1987 2010-10-20
  • 打赏
  • 举报
回复


Point p = new Point();

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
p = e.Location;
this.Invalidate();
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(Resource.blue, p.X, p.Y, 36, 36);
}
wuyq11 2010-10-17
  • 打赏
  • 举报
回复
Paint事件里面重新绘制
先画到 bitmap中,在paint事件中,画bitmap
xuld 2010-10-17
  • 打赏
  • 举报
回复
因为没刷新视图。


在 OnUpdate 事件中必须重画

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧