C#中窗体重绘

mouse1984dog 2010-01-30 11:05:11
private void Form1_Paint(object sender, PaintEventArgs e)
{

//其中drf是一个bool变量,用来确定窗体的绘制内容
if (drf)
{
Render1();

}
else { Render();};

}
当drf为真时执行Render1()方法,但是为什么窗体还是上一次显示的结果。并没有显示Render1()执行的效果,但是一移动窗体,就显示Render1()的效果,有哪位帮忙指导一下。
...全文
200 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinrui919 2010-01-30
  • 打赏
  • 举报
回复
Invalidate
zhukui 2010-01-30
  • 打赏
  • 举报
回复
当drf变更后调用窗体的Invalidate方法
mouse1984dog 2010-01-30
  • 打赏
  • 举报
回复
补充一下,是改变窗体的大小时才会显示Render1()的执行效果。
JOCLI 2010-01-30
  • 打赏
  • 举报
回复
那说明你的窗体重绘事件没有被触发,你改变窗体大小后,触发了该事件,所以才执行到代码,切换一下窗口再回来也会触发。。。
如果想不作其他操作就触发该事件,那就在 MoseMove事件里写 this.Refresh();吧
hzsagile 2010-01-30
  • 打赏
  • 举报
回复
//窗体改变时会触发消息 AutoSizeChanged ,Paint是窗口初绘消息

AutoSizeChanged += new EventHandler(OnAutoSizeChanged);


public void OnAutoSizeChanged(object sender, EventArgs e)
{
Redraw(cTemp);
}

110,533

社区成员

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

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

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