Я кодирую приложение.Net, используя Windows.Forms в С#. Я делаю имитацию табло с использованием графических ящиков. План состоит в том, чтобы суммировать их ширину 2 пикселя каждый таймер до тех пор, пока они не достигнут желаемой ширины. И эта проблема, потому что я понятия не имею, как сообщить функции таймера, какая ширина изображения должна увеличиваться. Я не хочу использовать другой метод для каждого изображения, потому что я не думаю, что это действительно оптимальный способ сделать это.
Итак, вопрос в том, как я могу настроить указанные pixtureboxes и требуемые ширины на метод timer_tick?
Я пытаюсь сделать что-то вроде доски в польской версии Family Feud: https://www.youtube.com/watch?v=uL-y18ZkbcQ (смотреть с 3:05)
Просто напишите небольшой вспомогательный класс, чтобы следить за таймером и коробкой с картинками. Это может выглядеть так:
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);