У них общий лот , оба они получены из ContainerControl.Однако UserControl предназначен для того, чтобы быть дочерним окном, его нужно поместить в контейнер.Форма была разработана, чтобы быть окном верхнего уровня без родителя.
Вы можете на самом деле превратить форму в дочернее окно, установив для свойства TopLevel значение false:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var child = new Form2();
child.TopLevel = false;
child.Location = new Point(10, 5);
child.Size = new Size(100, 100);
child.BackColor = Color.Yellow;
child.FormBorderStyle = FormBorderStyle.None;
child.Visible = true;
this.Controls.Add(child);
}
}