更改计时器tick事件的参数

时间:2014-06-08 14:00:41

标签: c# .net winforms visual-studio-2013

我在C#中使用Windows.Forms编写.Net应用程序。我正在使用图片盒模仿记分牌。计划是每个计时器滴答的宽度为2px,直到达到所需的宽度。这就是问题所在,因为我不知道如何告诉计时器滴答功能它应该增加哪个图片框的宽度。我不想为每个图片框使用不同的方法,因为我认为它不是最佳的方法。

所以,问题是,如何设置指定的pixturebox和所需的宽度受timer_tick方法的影响?

我正在努力做一些类似于波兰版“家庭仇恨”中的董事会:https://www.youtube.com/watch?v=uL-y18ZkbcQ(从3:05开始)

1 个答案:

答案 0 :(得分:4)

只需编写一个小助手类来跟踪计时器和图片框。它看起来像这样:

    class Animator : IDisposable {
        private Timer timer;
        private PictureBox pbox;
        private int maxSize;
        public Animator(PictureBox box, int size) {
            pbox = box;
            maxSize = size;
            timer = new Timer() { Interval = 45, Enabled = true };
            timer.Tick += animate;
        }
        private void animate(object sender, EventArgs e) {
             if (pbox.IsDisposed || pbox.Width >= maxSize) Dispose();
             else pbox.Width += Math.Min(2, maxSize - pbox.Width);
        }
        public void Dispose() { timer.Dispose();  }
    }

现在,您可以使用Form类中的简单语句创建任意数量的语句:

   new Animator(pictureBox1, 50);