求助高手,窗口重绘问题

wqtian2010 2010-03-20 09:48:08
我override了OnPaint方法,让它画一个指定队列里面的点。然后用一个定时器,定时validate所画区域,可是为什么画了一会就不画了,调试发现,程序没有进OnPaint方法,当我切换窗口的时候,它又进OnPaint方法了。请问这是为什么了,它为什么不定时的去调用OnPaint方法,使用Refresh也是如此。怎样才能让系统不停的调用OnPaint方法,重绘指定区域?
...全文
150 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
秒华 2010-03-28
  • 打赏
  • 举报
回复
顶一下,楼下的继续回答。
wqtian2010 2010-03-28
  • 打赏
  • 举报
回复
3楼、4楼、5楼的大侠没看清楚我的问题,我已经用定时器了,但还是没有定时去OnPaint,可能.NET认为不需要重绘,所以没有调用OnPaint,我现在的问题是怎样强制让它定时的OnPaint.
a451653948 2010-03-28
  • 打赏
  • 举报
回复
个人感觉还是时间定时器没有设定好,主要看看自己的变成出错的地方,应该有答案!要相信自己。
wqtian2010 2010-03-28
  • 打赏
  • 举报
回复
高手在哪里???
SAP道长 2010-03-26
  • 打赏
  • 举报
回复
樓上的已經說出答案了﹐Timer事件
yuanhuiqiao 2010-03-26
  • 打赏
  • 举报
回复
弄一timer,在其事件里调用Refresh方法,试试
JOCLI 2010-03-26
  • 打赏
  • 举报
回复
给你段示例代码



protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
MessageBox.Show("OK");
}

private void timer1_Tick(object sender, EventArgs e)
{
this.Refresh();
}

private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
starts_2000 2010-03-26
  • 打赏
  • 举报
回复
定时器需要加上base.Invalidate();
wqtian2010 2010-03-26
  • 打赏
  • 举报
回复
自己顶一下……

110,546

社区成员

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

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

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