Не связывайтесь с сгенерированным кодом самостоятельно. Файл designer.cs
должен управляться самим дизайнером форм, а не пользователем. В частности, легко проверить, что разработчик не переносит процедуру, которую вы, похоже, выполняете:
- Объявление поля массива элементов управления в файле конструктора.
- Использование этого поля для заполнения коллекции элементов управления формы путем изменения сгенерированного метода
InitializeComponent
.
Когда я это делаю, я получаю ту же ошибку, что и вы.
Обычным решением для такого рода требований является использование программной техники для добавления ряда элементов управления в коллекцию элементов управления родительского элемента управления. В идеале, создайте свой собственный пользовательский элемент управления, который может содержать число Labels
(которое заполняется программно). Затем вы можете использовать этот элемент управления в вашей форме с полной поддержкой дизайнера.
EDIT
Например (только эскиз, без пользовательского элемента управления), добавьте FlowLayoutPanel
к форме через конструктор.
Затем измените конструктор формы на:
public MyForm()
{
InitializeComponent();
var labels = Enumerable.Range(0, 100)
.Select(i => new Label { Text = i.ToString() })
.ToArray();
flowLayoutPanel1.Controls.AddRange(labels);
}
Очевидно, что такое решение может не подходить, если вы не хотите, чтобы метки были организованы в макет потока.