闪屏问题,panel和picturebox的backgroundimage属性的区别?

LS1jun 2016-03-20 10:28:29
使用panel控件时:不断重绘bitmap,在其paint事件中赋值panel.backgroundimage = bitmap;会闪屏
而使用picturebox控件进行相同的操作却不会闪屏,请问这是怎么回事?
另外,形式如下面这样写的代码,draw方法的grh会报错,请问是怎么回事?
private void panelGameRegion_Paint(object sender, PaintEventArgs e)
{
DrawAll(e.Graphics);
}
DrawAll(Graphics grh)
{
for(i=0;i<n;i++)
draw(grh);
}
draw(Graphics grh)
{
grh.FillRectangle(........);
}
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
为轮子而生 2016-04-05
  • 打赏
  • 举报
回复
引用 3楼我是你的主体 的回复:
引用 2 楼 rocmemory 的回复:
另外,在一次Paint中Draw多次,跟只Draw一次是一样的,你需要学习一下Windows消息相关知识,编程本身不是学问,它依赖的诸多知识才是学问。
谢谢你的回答,我这只是列出个引用形式,draw只是一个方法,会有很多不同的操作,所以不会一样
无论你怎么引用,在一个重绘响应的事件处理程序中,再次要求重绘,是绝对禁止的。说白了,在paint函数中,不能有类似设置BackgroundImage的操作。
LS1jun 2016-04-01
  • 打赏
  • 举报
回复
引用 2 楼 rocmemory 的回复:
另外,在一次Paint中Draw多次,跟只Draw一次是一样的,你需要学习一下Windows消息相关知识,编程本身不是学问,它依赖的诸多知识才是学问。
谢谢你的回答,我这只是列出个引用形式,draw只是一个方法,会有很多不同的操作,所以不会一样
为轮子而生 2016-03-22
  • 打赏
  • 举报
回复
你在Paint时改BackgroundImage,会造成控件重绘,也就是在Paint里又引发了Paint事件,如同两个镜子面对面,不崩溃就是好的了
为轮子而生 2016-03-22
  • 打赏
  • 举报
回复
另外,在一次Paint中Draw多次,跟只Draw一次是一样的,你需要学习一下Windows消息相关知识,编程本身不是学问,它依赖的诸多知识才是学问。

110,571

社区成员

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

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

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