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;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно сделать код закрытым ? Ну чтобы его нельзя было посмотреть, c# - через рефлектор 8x, 9
Доброго времени суток! Получил задание решить классическую задачу о ранцеЕсть N предметов, у каждого предмета есть вес и цена, есть ранец,...