Заполните все ваши графические блоки в список, как уже предоставленная msmolka, а также добавьте к нему ReadyOnlyCollection:
private List<PictureBox> _PictureBoxes;
private ReadOnlyCollection<PictureBox> _PictureBoxesReadOnly;
Создайте его в конструкторе:
public MyUserControl()
{
InitializeComponent();
_PictureBoxes = new List<PictureBox>();
_PictureBoxesReadOnly = _PictureBoxes.AsReadOnly();
}
И сделайтеReadOnlyCollection доступен только как IList
:
public IList<PictureBox> PictureBoxes
{
get { return _PictureBoxesReadOnly; }
}
Это (на мой взгляд) лучше, чем подход от msmolka.Для того, чтобы сделать его идеальным, я бы тоже не отдал весь PictureBoxes внешнему миру, а вместо этого только Image
s как BindingList
.Но я думаю, что для новичка вы можете начать с вышеизложенного и, возможно, улучшить этот материал позже.