Возможно, ваша проблема в том, что вы не добавили ни одного изображения в ImageList
. Обратите внимание, что при вызове свойства .Images
класс ImageList
создает экземпляр свойства Images
, если оно не было инициализировано. Это означает, что вы можете иметь нулевое свойство Images
, и вызов ImageList.Images
будет работать очень хорошо.
Замечания
Если коллекция изображений не имеет еще не создано, оно создается при извлечении этого свойства.
(с https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.imagelist.images?view=netframework-4.8#System_Windows_Forms_ImageList_Images)
Так что возможно Свойство images не было инициализировано, но если вы добавили его из конструктора, эти проблемы будут обработаны до того, как оно попадет в ваш код.
Наиболее вероятное решение заключается в том, что вам сначала нужно добавить изображения в свойство Images
. :
private void FunctionName()
{
// From the above link:
// Set the ImageSize property to a larger size
// (the default is 16 x 16).
this.Controls[ImageListName].ImageSize = new Size(112, 112);
this.Controls[ImageListName].Images.Add(
Image.FromFile("path/to/image"));
// now there's at least one image
// so we can call index = 0
this.Controls[PicBoxName].BackgroundImage = this.Controls[ImageListName].Images[0];
}
(отредактировано для ясности)