c# GDI+关于控件重绘的问题

zzyhuda1 2014-10-15 11:50:04

如图,就一个Form 和 一个picturebox, Form背景红色,picturebox 背景透明,然后只写了两个事件如下,
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Invalidate();
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
MessageBox.Show("AAA");
}

为什么鼠标经过picturebox 时Form重绘了???
...全文
472 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
_lee_chong 2015-09-17
  • 打赏
  • 举报
回复
你都透明了能不重绘窗体么。。。另外,它重会它的又不碍着你,管它干嘛
crystal_lz 2015-09-17
  • 打赏
  • 举报
回复
引用 7 楼 crystal_lz 的回复:
因为 你 picbox 是透明的 能看到窗体上 picbox 后面属于窗体的内容 也就是picbox的背景 而你 picbox 重绘的时候 picbox 要重绘背景 而这个背景是 form 的所以重绘form 以上言论纯属yy 而且就算是 form重绘 也是重绘picbox所在的区域 要不 你messagebox 的时候 看看 e.那个什么Rectangle 来着 看看 是gic需要绘制的区域 看看是不是刚好是 picbox 的所在区域
以上言论纯属没有实践的 YY理论
crystal_lz 2015-09-17
  • 打赏
  • 举报
回复
因为 你 picbox 是透明的 能看到窗体上 picbox 后面属于窗体的内容 也就是picbox的背景 而你 picbox 重绘的时候 picbox 要重绘背景 而这个背景是 form 的所以重绘form 以上言论纯属yy 而且就算是 form重绘 也是重绘picbox所在的区域 要不 你messagebox 的时候 看看 e.那个什么Rectangle 来着 看看 是gic需要绘制的区域 看看是不是刚好是 picbox 的所在区域
aaa2742 2015-09-16
  • 打赏
  • 举报
回复
楼主问题解决了吗
卧_槽 2014-10-16
  • 打赏
  • 举报
回复
去看msdn关于Invalidate的解释。
feixuyue 2014-10-16
  • 打赏
  • 举报
回复
private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { pictureBox1.Invalidate();//无效对导致重绘。 //禁止重绘使用重写 onpaint方法。 }
effun 2014-10-16
  • 打赏
  • 举报
回复
Form不重绘中间那块能是红色的吗?
zzyhuda1 2014-10-15
  • 打赏
  • 举报
回复
如何才能禁止Form 重绘???

110,534

社区成员

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

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

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