private PanelWithDoubleBuffer[] mArrayOfPanels;
public HomePage()
{
mArrayOfPanels = new PanelWithDoubleBuffer[] {lvl1, lvl2, lvl3, lvl4, lvl5, lvl6, lvl7, lvl8, lvl9, lvl10 };
InitializeComponent();
for (int i = 0; i < Properties.Settings.Default.GameLevel + 1; i++)
{
mArrayOfPanels[i].Enabled = true;
}
}
На форме есть 10 панелей, к ним нужно обращаться. Для удобства помещаю их в массив, но при обращении выдает исключение nullpointer. Если делаю =new ...перед действием, то задаю новую ссылку и уже не могу обратиться. Где инициализировать и как ?)
Дело в том, что привязка полей типа lvl1 к реальным контролам происходит как часть InitializeComponent. До вызова InitializeComponent все эти поля имеют нулевое значение.
Попробуйте так:
public HomePage()
{
InitializeComponent();
mArrayOfPanels = new PanelWithDoubleBuffer[]
{
lvl1, lvl2, lvl3, lvl4, lvl5, lvl6, lvl7, lvl8, lvl9, lvl10
};
for (int i = 0; i < Properties.Settings.Default.GameLevel + 1; i++)
{
mArrayOfPanels[i].Enabled = true;
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники