【发布时间】:2012-05-08 14:32:24
【问题描述】:
我正在用 C# 编写一个 MDI 应用程序,其中包含两个通过 DLL 引用的子窗体(添加到引用的独立项目)。 一个子窗体(称为 form1)正在使用计时器执行基于图形对象的动画。在加载另一个子表单(称为 form2)之前,此项目(子 form1)工作正常。发生的情况是第一个表单 (form1) 上的动画停止,但是当我关闭第二个子表单 (form2) 时,动画继续没有问题。
我在form2中使用了这段代码:
private void FlyingBeeForm_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
DrawImages(g);
System.Threading.Thread.Sleep(50);
this.Invalidate();
}
【问题讨论】:
-
那么,第二种形式有什么特别之处呢?我们只知道它是一条鱼。如果您不知道,请注释掉第二种形式的代码块。
-
这也是一些动画,但没有计时器。 form2(fish) 的作用是当您单击鼠标时,鱼会移动到单击的区域
-
好吧,您几乎肯定需要使用计时器来为鱼设置动画。如果您循环,则第一种形式的计时器将停止工作。
-
两个项目(form1 和 form2)都基于绘制事件(当控件需要重新绘制时发生)
-
邮编,不说了。您现在拥有的 sn-p 无法诊断问题。我们不需要看鱼是如何游动的,只需要看是什么让它们继续前进。