Обычно я просто закрепляю различные формы внутри друг друга, устанавливая для свойства IsMdiContainer значение true в родительском окне. Затем я создаю подчиненные формы, которые закрепляю, используя следующую функцию:
static class FormUtil
{
static public void showForm(Form sender, Control reciever)
{
sender.ControlBox = false;
sender.FormBorderStyle = FormBorderStyle.None;
sender.ShowInTaskbar = false;
sender.TopLevel = false;
sender.Visible = true;
sender.Dock = DockStyle.Fill;
reciever.Controls.Clear(); //clear panel first
reciever.Controls.Add(sender);
}
}
тогда всякий раз, когда мне нужно закрепить форму внутри панели на форме родителей, я просто делаю:
FormUtil.showForm(new SomeForm(), this.splitContainer1.Panel1);
Это позволяет мне делегировать некоторые формы создания различным дизайнерам. Работает как обаяние для меня, люблю слышать, если есть лучший способ сделать это.