Задать вопрос

Как избежать обнуления массива?

Доброго времени суток! Возможно, для многих вопрос покажется глупым, но ответ мне необходим. В ниже приведенном коде существует массив _textAreas. Проблема в том, что после выполнения метода _pictureBox_Paint, данный массив обнуляется, а он мне нужен в дальнейшем. Как этого избежать?

public Bitmap Bitmap { get => (Bitmap)_pictureBox.Image; }
        private readonly PictureBox _pictureBox;
        private List<Rectangle> _textAreas;

        public PictureBoxControl(PictureBox pictureBox)
        {
            _pictureBox = pictureBox;
            _textAreas = new List<Rectangle>();
            _pictureBox.Paint += _pictureBox_Paint;
        }

        private void _pictureBox_Paint(object sender, PaintEventArgs e)
        {
            foreach (var textAreaRect in _textAreas)
                e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Red), 2), textAreaRect);
        }


public static class IEnumerableExtensions
    {
        public static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> onItem)
        {
            foreach (var item in enumerable)
                onItem(item);
        }
    }
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Микропетпроджект - домашнее облако homeCloud
Почему решили, что он обнуляется? Не похоже чт с ним должно что то происходить
Ответ написан
Tkreks
@Tkreks
Системный инженер
Это скорее костыль, чем решение. Скопируйте массив в другую переменную и после выполнения функции , при которой нужный вам массив обнуляется, скопируйте массив из переменной обратно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы