使用For循环的滑动对象(C#)

使用For循环的滑动对象(C#),c#,.net,winforms,animation,C#,.net,Winforms,Animation,我找了很多地方,没有找到任何有用的东西 是否可以使用C#,使用简单的For循环将对象从一个位置“滑动”或“移动”到另一个位置 谢谢你我建议你还是用一个新的。还有其他选择,但如果您想避免线程问题等,这将是最简单的选择 使用直接for循环需要使用Application.DoEvents()泵送消息队列以确保windows有机会实际呈现更新的控件,否则for循环将在不更新UI的情况下运行到完成,控件将显示为从源位置跳到目标位置 下面是一个QAD示例,用于在单击时在Y方向设置按钮动画。此代码假定您在名为

我找了很多地方,没有找到任何有用的东西

是否可以使用C#,使用简单的For循环将对象从一个位置“滑动”或“移动”到另一个位置


谢谢你

我建议你还是用一个新的。还有其他选择,但如果您想避免线程问题等,这将是最简单的选择

使用直接for循环需要使用
Application.DoEvents()泵送消息队列
以确保windows有机会实际呈现更新的控件,否则for循环将在不更新UI的情况下运行到完成,控件将显示为从源位置跳到目标位置

下面是一个QAD示例,用于在单击时在Y方向设置按钮动画。此代码假定您在名为
animationTimer
的窗体上放置了一个计时器控件

private void button1_Click(object sender, EventArgs e)
{
  if (!animationTimer.Enabled)
  {
    animationTimer.Interval = 10;
    animationTimer.Start();
  }
}

private int _animateDirection = 1;
private void animationTimer_Tick(object sender, EventArgs e)
{
  button1.Location = new Point(button1.Location.X, button1.Location.Y + _animateDirection);

  if (button1.Location.Y == 0 || button1.Location.Y == 100)
  {
    animationTimer.Stop();
    _animateDirection *= -1; // reverse the direction
  }
}

假设您正在谈论的对象是某种
控件
,您可以更改它的
位置
属性

比如说:

for(int i = 0; i < 100; i++)
{
    ctrl.Location.X += i;
}
for(int i=0;i<100;i++)
{
ctrl.Location.X+=i;
}

我想应该行。

是的,这是可能的。什么类型的申请?控制台、Windows、Web?这是一个Windows窗体应用程序,当然取决于具体情况,但我同意,使用计时器似乎对他想做的任何事情都有用。