Пример можешь глянуть прям в студии (например, если ты ею пользуешься).
Создаешь через мастер приложение - win Forms, накидываешь кнопочки,...
(создай пару обработчиков, тоже полезно будет). Затем начинаешь изучать по строчечкам полученный код, особенно вглядываясь в (если форма Form1.cs) в Form1.Designer.cs - это и есть генерация формы.

например генерация кнопки:

private void InitializeComponent()
{
//
// buttonAdd
//
this.buttonAdd.Location = new System.Drawing.Point(12, 373);
this.buttonAdd.Name = "buttonAdd";
this.buttonAdd.Size = new System.Drawing.Size(75, 23);
this.buttonAdd.TabIndex = 1;
this.buttonAdd.Text = "Добавить";
this.buttonAdd.UseVisualStyleBackColor = true;
this.buttonAdd.Click += new
System.EventHandler(this.buttonAdd_Click);
}


В конце кода описана переменная для работы с кнопкой:
private System.Windows.Forms.Button buttonAdd;

в конце
private void InitializeComponent()

описано добавление кнопок на форму:
// Form1
//
this.ClientSize = new System.Drawing.Size(262, 428);
this.Controls.Add(this.buttonDelete);
this.Controls.Add(this.buttonAdd);
this.Controls.Add(this.listBoxCollection);

this.Name = "Form1";

если у тебя неизвестное количество кнопок (да и не кнопок может быть а Labal-ов)) ) получается примерно следующее

- передаешь что нужно создавать (int 1-кнопка, 2 - textbox,....)
в зависимости от этого создаёшь то или иное.
- передаешь параметры (положение, надпист, многострочная ли, название обработчика...)
в зависимости от типа контрола (кнопка, текстбокс...) устанавливаешь те или иные параметры.
- добавляешь контрол к
SomeForm.Controls.Add(SomeNewControl);
- всё))