我希望标签从表单左侧移动并停在中心
我已经能够使用
执行此操作 Timer tmr = new Timer();
int locx = 6;
public Form1()
{
InitializeComponent();
tmr.Interval = 2;
tmr.Tick += new EventHandler(tmr_Tick);
}
void tmr_Tick(object sender, EventArgs e)
{
label1.Location = new Point(locx, 33);
locx++;
if (locx == 215)
{
tmr.Stop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "QUICK SPARK";
tmr.Start();
}
我想知道是否有更好的方法可以做到这一点??? ...任何帮助将不胜感激
答案 0 :(得分:4)
如果您使用的是VS 2012和C#5,则只需通过await
/ async
执行此操作:
private async void Form1_Load(object sender, EventArgs e)
{
label1.Text = "QUICK SPARK";
for (int locx = 6; locx < 215; ++locx)
{
await Task.Delay(2);
label1.Location = new Point(locx, 33);
}
}
答案 1 :(得分:0)
WinForm动画库[.Net3.5 +]
一个简单的库,用于在.Net WinForm(.Net中)中设置控件/值的动画 3.5及以后)。基于关键帧(路径)并可完全自定义。
https://falahati.github.io/WinFormAnimation/
new Animator2D(
new Path2D(new Float2D(-100, -100), c_control.Location.ToFloat2D(), 500))
.Play(c_control, Animator2D.KnownProperties.Location);
这会将c_control
控件从-100,-100移动到500毫秒内的第一个位置。