[color=#FF0000]100分 想拿分的进来回答问题 [/color]
C# code
1. protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawImage(img, 0, 0);
}
2. protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = this.CreateGraphics();
g.DrawImage(img, 0, 0);
g.Dispose();
}
问题一:为何第二种方法画图很闪而且画不出图?
问题二:关于鼠标事件按下列顺序发生:
MouseEnter
MouseMove
MouseHover / MouseDown / MouseWheel
MouseUp
MouseLeave
你怎么理解?
问题三:OnPaint方法何时引发paint事件?
每个问题30分 还有10分给8楼 先回答对的给分
------解决方案--------------------
问题一:为何第二种方法画图很闪而且画不出图?
本来e里就已经有相关对象了
你又重新创建
慢,卡
------解决方案--------------------
好复杂
GDI+不是强项
百度了一下
http://blog.sina.com.cn/s/blog_5344089201009whk.html
------解决方案--------------------
你的问题二其实msdn上有详细介绍的http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.mousemove(v=vs.100).aspx
如:MouseEnter:指鼠标刚移动到这个控件上(举例为button)
如:MouseMove: 的典型用法是更改控件的颜色或在控件周围绘制一个引发的矩形。(当鼠标移动在button上时,button颜色会改变)
如:MouseHover: 的一个典型用法是当鼠标悬停在控件周围指定区域(“悬停矩形”)上时显示工具提示。(提示你这个button什么用处或者提示名称)
如:MouseDown:就是鼠标点击下来发生的事件。。
如:MouseWheel:单击这个button并移动鼠标,就是可以拖动的意思。
如:MouseUp:就是放开鼠标左键。跟MouseDown对应。
如:MouseLeave:鼠标离开这个控件。跟MouseEnter对应。
望采纳。
------解决方案--------------------
你把双缓冲关了就能画出来
------解决方案--------------------想拿分,但回答不上。LZ能给分吗?