如何停止按钮在所需位置移动(包括计时器)
本文关键字:移动 包括 计时器 位置 何停止 按钮 | 更新日期: 2023-09-27 18:25:12
我有一个表单。左侧有一个按钮,右侧有一个标签。我想点击按钮移动,直到它到达标签,然后停止并变为假的。目前,我的按钮只是从右向左移动,但它只会在点击时停止。我需要它在点击或到达最后一个点标签时停止。
private void timer1_Tick(object sender, EventArgs e)
{
button1.Left++;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
if (timer1.Enabled)
{
button1.Text = "Brauc!";
timer1.Start();
}
else
{
button1.Text = "Sakt braukt!";
timer1.Stop();
}
}
如果没有一个好的最小、完整代码示例,它清楚地显示了您所尝试的内容,以及对代码的作用和(尤其是)您希望代码做什么的精确解释,就不可能确定对您来说最好的答案是什么。
但根据你发布的代码,我希望以下内容能起作用:
private void timer1_Tick(object sender, EventArgs e)
{
button1.Left++;
int buttonMoveLimit = label1.Left - button1.Width;
if (button1.Left >= buttonMoveLimit)
{
button1.Left = buttonMoveLimit;
SetTimer(false);
}
}
private void button1_Click(object sender, EventArgs e)
{
SetTimer(!timer1.Enabled);
}
private void SetTimer(bool enabled)
{
timer1.Enabled = enabled;
button1.Text = timer1.Enabled ? "Brauc!" : "Sakt braukt!";
}
注意:您不需要同时设置Enabled
和调用Start()
或Stop()
。设置属性值相当于调用Start()
或Stop()
,反之亦然。