Сведения о вопросе

None

11:18, 6th August, 2020

Теги

c#   .net   winforms    

Кнопка цикла фоновые изображения в C#

Просмотров: 499   Ответов: 3

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

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

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



  Сведения об ответе

PHPH

04:14, 16th August, 2020

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


  Сведения об ответе

SEEYOU

06:32, 24th August, 2020

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


  Сведения об ответе

COOL

01:25, 17th August, 2020

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(); }
}

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться