我有一张表格。左侧有1个按钮,右侧有1个标签。 我想要点击按钮移动直到它到达标签然后停止并变为假。目前我的按钮只是从右侧移动到左侧,但它只会在点击时停止。我需要它来阻止点击或当它到达最终点 - 标签。
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();
}
}
答案 0 :(得分:1)
如果没有a good, minimal, complete code example清楚地显示您尝试过的内容,以及对代码执行操作的精确解释以及(特别是)您希望代码执行的操作,则无法确切知道最佳内容答案就是你。
但根据您发布的代码,我希望以下内容可以正常工作:
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()
,反之亦然。