84 votes

Quelle est la différence entre le contrôle de l'utilisateur, le contrôle personnalisé et le composant?

Ce sont trois choses différentes que vous pouvez ajouter à un projet et je ne suis pas tout à fait sûr de comprendre la différence. Par exemple, ils semblent tous apparaître dans la boîte à outils du composant lorsque vous travaillez avec Form . Quels sont les scénarios d'utilisation courants pour chacun d'eux? Quelle est la différence?

166voto

Fredrik Mörk Points 85694

La principale différence entre le Contrôle de l'Utilisateur, le Contrôle Personnalisé et d'un Composant, c'est qu'ils héritent de différents niveaux dans l'arborescence d'héritage:

MyComponent
   |-> Component

MyCustomControl
   |-> Control
          |-> Component

MyUserControl
   |-> ContainerControl
          |-> ScrollableControl
                 |-> Control
                        |-> Component

Donc, en bref, vous obtenez une quantité différente de pré-câblé fonctionnalité avec les différentes options.

Quand souhaitez-vous utiliser les différentes options? (ce sont des pensées et des opinions, pas des vérités)

  • Créer un composant si vous voulez fournir des fonctionnalités sans INTERFACE utilisateur (comme Minuterie composants, sources de données, ...)
  • Créer un contrôle personnalisé si vous souhaitez faire un élément où vous avez le plein contrôle sur son aspect visuel, et vous ne voulez pas de bagages inutiles fonctionnalité. Cas typique serait de commandes simples avec des fonctionnalités limitées (comme un bouton)
  • Créer un contrôle utilisateur si vous allez combiner les contrôles existants dans des modules réutilisables (tels que les deux listes avec des boutons où vous pouvez déplacer des éléments entre les listes).

4voto

Menard Laval Points 39

C'est la différence entre un CustomControl et un UserControl :

Contrôle Personnalisé

Un couplage lâche de contrôle w.r.t code et de l'INTERFACE utilisateur

Dérive de Contrôle

Définit l'INTERFACE utilisateur dans un ResourceDictionary

L'INTERFACE utilisateur est skinable

A mise en page dynamique

L'INTERFACE utilisateur peut être changé dans les différents projets

A pleine boîte à outils de soutien

Définit un contrôle unique

Plus souple

==============

De Contrôle De L'Utilisateur

Un étroitement associée de contrôle w.r.t code et de l'INTERFACE utilisateur

Dérive de UserControl

Définit l'INTERFACE utilisateur normal XAML

Les contrôles enfants sont skinable

A statique de la mise en page

L'INTERFACE utilisateur est fixe et ne peut pas avoir des regards différents dans différents projets

Ne peuvent pas être ajoutés à la boîte à outils

Définit un ensemble de contrôles

Pas très souple comme un Contrôle Personnalisé

2voto

Chad Yeates Points 960

En plus de ce que Fredrik a dit, des composants et des contrôles personnalisés sont généralement utilisés lorsque vous envisagez de les réutiliser dans des projets. Utilisez les contrôles de l'utilisateur lorsque vous ne l'utilisez que dans un seul projet.

-5voto

Hims Points 21

La principale différence entre eux - User Control est un fichier d'échange avec l'extension .ascx qui ne peut être utilisé que dans une seule application ou un seul projet. Cependant, les contrôles personnalisés sont des assemblys (fichiers dll) utilisables dans plusieurs applications.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X