web-dev-qa-db-fra.com

Contrôle utilisateur vs Windows Form

Quelle est la différence entre un contrôle utilisateur et un formulaire Windows dans Visual Studio - C #?

54
Arlen Beiler

En termes très simples:

Les contrôles utilisateur sont un moyen de créer un composant réutilisable personnalisé. Un contrôle utilisateur peut contenir d'autres contrôles mais doit être hébergé par un formulaire.

Les formulaires Windows sont le conteneur des contrôles, y compris les contrôles utilisateur. Bien qu'il contienne de nombreux attributs similaires à un contrôle utilisateur, son objectif principal est d'héberger des contrôles.

51
Bill Martin

Ils ont un lot en commun, ils sont tous deux dérivés de ContainerControl. UserControl est cependant conçu pour être une fenêtre enfant, il doit être placé dans un conteneur. Le formulaire a été conçu pour être une fenêtre de niveau supérieur sans parent.

Vous pouvez réellement transformer un formulaire en fenêtre enfant en définissant sa propriété TopLevel sur 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);
    }
}
21
Hans Passant

Un formulaire Windows est un conteneur pour les contrôles utilisateur.

4
Ikke

La plus grande différence est form.show donne une fenêtre différente tandis que usercontrol n'a pas de fonctionnalité comme apparaître sans parent. Les choses de repos sont les mêmes dans les deux contrôles comme beind dérivé de Scrollablecontrol.

1
sunnytyra