What is the difference between a user control and a windows form in Visual Studio - C#?
5 Answers
Put very simply:
User controls are a way of making a custom, reusable component. A user control can contain other controls but must be hosted by a form.
Windows forms are the container for controls, including user controls. While it contains many similar attributes as a user control, it's primary purpose is to host controls.

- 4,825
- 9
- 52
- 86
-
2Can user controls host (contain) other user controls? – Robert Niestroj Apr 30 '12 at 13:54
-
2@RobertNiestroj yes they can. – LxL Jan 02 '14 at 17:43
They have a lot in common, they are both derived from ContainerControl. UserControl however is designed to be a child window, it needs to be placed in a container. Form was designed to be a top-level window without a parent.
You can actually turn a Form into a child window by setting its TopLevel property to 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);
}
}

- 922,412
- 146
- 1,693
- 2,536
-
4
-
There is a wee bit of memory you'll use needlessly, very small peanuts compared to the cost of the Control class and especially the native window. It would have been very easy for Microsoft to not expose the TopLevel property. The feature is merely obscure, using it is just fine. – Hans Passant Aug 02 '16 at 10:08
-
1I guess I was speaking from the standpoint of code clarity and composition. Sure, you can do this, and sure, it's supported, but I think my point was to not take this good example as a design pattern :) – Dave Markle Aug 02 '16 at 12:10
The biggest difference is form.show gives a different window while usercontrol doesnt have feature like popping up without a parent. Rest things are same in both the controls like beind derived from Scrollablecontrol.

- 89
- 1
- 3
A User Control is a blank control, it's a control that's made up of other controls. Building a user control is similar to building a form. It has a design surface, drag and drop controls onto the design surface, set properties, and events. User controls can consolidate UI and code behind. User controls can only be used in the project where they're defined.

- 13
- 3