Фоновые изображения кнопки цикла в C # - PullRequest
4 голосов
/ 18 августа 2008

У меня есть форма в C #, в которой есть кнопка, при нажатии которой я хочу, чтобы фоновое изображение циклически проходило через набор изображений (которые у меня есть как ресурсы для проекта). Изображения называются «_1», «_2» и т. Д., И каждый раз, когда я нажимаю кнопку, я хочу, чтобы фоновое изображение увеличивалось до следующего и возвращалось к «_1», когда оно достигает максимального значения. Есть ли способ сделать это?

Я попытался получить button1.BackgroundImage.ToString(), но это дает System.Drawing.Bitmap вместо Resources._1, как я и думал (в таком случае я мог бы просто получить последний символ и включить его, чтобы изменить фон на соответствующее новое изображение ).

Спасибо за вашу помощь.

Ответы [ 3 ]

3 голосов
/ 18 августа 2008

Почему бы вам просто не поместить изображения в массив?

0 голосов
/ 30 сентября 2012
class YourClass
{
    private IEnumerator<Image> enumerator;

    YourClass(IEnumerable<Image> images)
    {
        enumerator = (from i in Enumerable.Range(0, int.Max)
                      from image in images
                      select image).GetEnumerator();
        enumerator.MoveNext();
    }

    public Image CurrentImage { get { return enumerator.Current; } }

    public void OnButtonClick() { enumerator.MoveNext(); }
}

Вы можете использовать этот код в качестве вспомогательного класса для вашего элемента управления при условии, что пользователь не нажмет кнопку более двух миллиардов раз.

Просто обратите внимание, что после создания этого класса вы не можете изменять данный список изображений снаружи. Если вы хотите делать такие вещи, вам нужно реализовать одноразовый шаблон и соответствующим образом утилизировать счетчик.

0 голосов
/ 18 августа 2008

Вы можете создать подкласс Button и переопределить свойство BackgroundImage, чтобы лучше отслеживать текущий ресурс, представляющий изображение. Вы также можете переопределить метод onclick для внутренней обработки циклического перехода к следующему изображению, хотя это может быть немного странным, если ресурсы обрабатываются вне вашего производного класса кнопок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...