Проблема с кнопками

Controls["button" + i.ToString()].BackgroundImage = imageList1.Images[i]; Выдаёт ошибку System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." Как можно это исправить или как менять номер кнопки? Например, есть некое значение а (предположим а=5), тогда у button5 меняем фон. Значение а может измениться, например на 4, тогда у button4 меняем фон


Ответы (1 шт):

Автор решения: YD359
  1. Лучше всего заранее создать массив кнопок и обращаться по индексу.
  2. Попробуйте разбить свои операции на несколько строк, и сделать брекпоинт для дебага, чтобы посмотреть, какие имена и индексы у вас в итоге получаются.

Было

Controls["button" + i.ToString()].BackgroundImage = imageList1.Images[i];

Стало

var btnName = "button" + i.ToString();
var bgImage = imageList1.Images[i];
Controls[btnName].BackgroundImage = bgImage; // Здесь брекпоинт
  1. Можно обернуть ваши действия в блок try\catch с выводов всей информации.
→ Ссылка