计时器组件未停止

问题描述 投票:0回答:1

我正在使用Winforms应用,当用户单击它时,我想使标签“滑行”。为此,我创建了一个click事件,该事件启动了一个计时器,该计时器随后将标签逐渐移至窗体上方。然后,我有了一个递增的计数器,当计数器到达某个位置时,计时器应该停止。但是,计时器没有停止。为了测试目的,我故意将计数器限制设置为2,但是标签继续从表格中移开。这是代码:

private void DrawerTimer_Tick(object sender, EventArgs e)
    {
        int counter = 0;
        newsLabel.Top -= 10;
        counter++;
        if (counter == 2)
            drawerTimer.Stop();
    }

    private void News_Click(object sender, EventArgs e)
    {
        drawerTimer.Start();
    }
c# winforms timer click
1个回答
1
投票
int counter = 0; // here you are setting it 0
newsLabel.Top -= 10;
counter++; // here you are incrementing it by 1
if (counter == 2) // here you are checking for 2, its never going to get there
   drawerTimer.Stop();

[很有可能您会想做这样的事情

private int _counter; // instance field, field to remember your count

private void DrawerTimer_Tick(object sender, EventArgs e)
{
    newsLabel.Top -= 10;
    counter++; // increment it every tick
    if (counter == 2)
        drawerTimer.Stop();
}

private void News_Click(object sender, EventArgs e)
{
    _counter = 0; // set to zero when start
    drawerTimer.Start();
}
© www.soinside.com 2019 - 2024. All rights reserved.