C# graphics 清除

fengduole 2012-08-25 01:08:18
我想写一个五子棋的游戏。用一个PictureBox加载了背景图,然后在上面绘制棋子。
鼠标移动到的当前格子需要高亮显示,移走了就还原。
我的做法是整个pictureBox都要重绘,但是会有闪烁的情况出现。
求教有没有不闪烁的方法?
...全文
122 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiwenyu 2012-08-25
  • 打赏
  • 举报
回复
不要的mousemove中调用refresh方法,那样肯定闪烁,因为这个事件执行得太频繁了,特别是光电鼠标,即使你不动,它也触发
你可以把每个单元格定义成一个对象,它有自己的draw方法,判断如果鼠标在自己的边界内,则用高亮画法,否则,用普通画法。
在paint事件中,遍历每个对象,执行每个对象自己的画法
在mousemove事件中,找到对应的单元格,执行它自己的draw方法,而不是刷新整个

110,534

社区成员

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

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

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