我有三个标签控件,在For循环的帮助下,我编写了一个方法,将控件从窗体顶部移动到底部。我有三个计时器,每个都反复移动一个控件,但问题是它们一个接一个地执行。
我希望时间同时执行,即所有三个标签同时从表格顶部向右移动。
注意:每次调用计时器后,我都会设置一个随机对象,在表单顶部随机重置位置。
答案 0 :(得分:6)
然后不要使用三个计时器。只需使用一个计时器并将你的代码放入它的Tick事件中。
根据您的代码,您可以执行以下操作,在方法之外定义Random
变量,只使用timer1_Tick
事件,您可以删除其他计时器:
Random random = new Random();
private void timer1_Tick(object sender, EventArgs e)
{
int X = random.Next(0, 1230);
int y = X;
label2.Location = new Point(X, 5);
label3.Location = new Point(X, 5);
for (int i = 5; i <= 470; i++)
{
label2.Location = new Point(y, i);
label3.Location = new Point(y, i);
Thread.Sleep(1);
}
}
答案 1 :(得分:0)
使用一个计时器,如果你想要花哨,请勾选执行各种回调。这样你就可以在运行时定义tick中的内容。